|
48826
|
Online Website Menu for FastFOOd Resturant by @sam Online Website Menu for FastFOOd Resturant by @samarthsaraf | Stardance...
|
samarthsaraf
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Online Website Menu for FastFOOd Resturant Title: Online Website Menu for FastFOOd Resturant by @samarthsaraf | Stardance...
|
1793249256.1759164
|
1793854056.1759164
|
|
48825
|
My awesome macropad! by @vedant220 | Stardance
|
vedant220
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @vedant220 | Starda Title: My awesome macropad! by @vedant220 | Stardance...
|
1793249255.2462223
|
1793854055.2462223
|
|
43971
|
zindous98 by @WowZiesel | Stardance
|
WowZiesel
|
0
|
1.51
|
0
|
[]
|
[{"post_id": 44813, "ts": "202 [{"post_id": 44813, "ts": "2026-08-10T20:46:57Z", "hours": 0.3372, "text": "I added background change new things to terminal, etc"}, {"post_id": 44034, "ts": "2026-08-09T15:20:20Z", "hours": 1.1731, "text": "This my zindous, im planning to implement features like background change, 12/24 and other time settings"}]...
|
Title: zindous98 by @WowZiesel | Stardance
Devlog Title: zindous98 by @WowZiesel | Stardance
Devlogs:
This my zindous, im planning to implement features like background change, 12/24 and other time settings
I added background change new things to terminal, etc...
|
1793249254.330498
|
1793854054.330498
|
|
48824
|
Bleh by @nayeemtanvir7 | Stardance
|
nayeemtanvir7
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Bleh by @nayeemtanvir7 | Stardance
|
1793249253.4188685
|
1793854053.4188685
|
|
48823
|
My portfolio by @adisharmaji01 | Stardance
|
adisharmaji01
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My portfolio by @adisharmaji01 | Stardance
|
1793249251.2099872
|
1793854051.2099872
|
|
48822
|
My own site! by @hridaypro9 | Stardance
|
hridaypro9
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @hridaypro9 | Stardance
|
1793249250.3126364
|
1793854050.3126364
|
|
48821
|
TECJAY MACROPAD by @yuyuthsav | Stardance
|
yuyuthsav
|
0
|
0.95
|
0
|
[]
|
[{"post_id": 77219, "ts": "202 [{"post_id": 77219, "ts": "2026-10-06T04:12:08Z", "hours": 0.9475, "text": "Just finished the schematics for tecjay macropad"}]...
|
Title: TECJAY MACROPAD by @yuyuthsav | Stardance
Title: TECJAY MACROPAD by @yuyuthsav | Stardance
Devlogs:
Just finished the schematics for tecjay macropad...
|
1793249249.4019394
|
1793854049.4019394
|
|
43970
|
MP3 PLAYER by @Nightshade_934 | Stardance
|
Nightshade_934
|
0
|
5.61
|
0
|
[]
|
[{"post_id": 45689, "ts": "202 [{"post_id": 45689, "ts": "2026-08-12T10:43:11Z", "hours": 1.5067, "text": "Finalised the display i will be using after a lot of research and reading through datasheets. Also made/attached all the remaining symbols . So, the final component schematics have been made. now all that’s left is wiring and connecting (good luck to me)"}, {"post_id": 43981, "ts": "2026-08-09T13:46:48Z", "hours": 2.35, "text": "Added components on kicad. I forgot to mention in my previous devlog that I scratched the innitial idea and now I’m using an ESP32wroom32E instead of arduino pro mini. Also after analysing more I realised that the bt module wasn’t really needed and so removed it and the assosciated components off my list. I also google mp3 player dimensions and found out that my screen was too small. I replaced it with a bigger screen which is slightly more batter draining but still comfortable. I have yet to add the screen’s component as i can’t find a datasheet with clear schematic diagrams.Then i fiddled a litte with CAD to see if the new proportions of the screen would be a good match. I will have to increase the dimensions a little more than standard convention but it should be ok, atleast I think so. Figuring out the CAD design is def something i need to work out and how Ican make it unique to me"}, {"post_id": 43197, "ts": "2026-08-08T10:11:54Z", "hours": 0.8169, "text": "Today I planned and finalised a component list which I wrote down and drew how the buttons would be placed and what i want my mp3 player to look like"}, {"post_id": 40953, "ts": "2026-08-04T20:17:58Z", "hours": 0.9361, "text": "I am building an mp3 player from scratch. I have taken inspiration from an open source project but I will be modifying it to adapt to a wireless module and design a completely different case for it. Right now, I am working on the schematics, which is- taking notes from the open source project and adding my modifications. I have only managed to design a custom component on kicad and some elements here and there for now."}]...
|
Title: MP3 PLAYER by @Nightshade_934 | Stardance
Title: MP3 PLAYER by @Nightshade_934 | Stardance
Devlogs:
I am building an mp3 player from scratch. I have taken inspiration from an open source project but I will be modifying it to adapt to a wireless module and design a completely different case for it. Right now, I am working on the schematics, which is- taking notes from the open source project and adding my modifications. I have only managed to design a custom component on kicad and some elements here and there for now.
Today I planned and finalised a component list which I wrote down and drew how the buttons would be placed and what i want my mp3 player to look like
Added components on kicad. I forgot to mention in my previous devlog that I scratched the innitial idea and now I’m using an ESP32wroom32E instead of arduino pro mini. Also after analysing more I realised that the bt module wasn’t really needed and so removed it and the assosciated components off my list. I also google mp3 player dimensions and found out that my screen was too small. I replaced it with a bigger screen which is slightly more batter draining but still comfortable. I have yet to add the screen’s component as i can’t find a datasheet with clear schematic diagrams.Then i fiddled a litte with CAD to see if the new proportions of the screen would be a good match. I will have to increase the dimensions a little more than standard convention but it should be ok, atleast I think so. Figuring out the CAD design is def something i need to work out and how Ican make it unique to me
Finalised the display i will be using after a lot of research and reading through datasheets. Also made/attached all the remaining symbols . So, the final component schematics have been made. now all that’s left is wiring and connecting (good luck to me)...
|
1793249248.4752407
|
1793854048.4752407
|
|
48818
|
My awesome macropad! by @neevanmac13 | Stardance
|
neevanmac13
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @neevanmac13 | Star Title: My awesome macropad! by @neevanmac13 | Stardance...
|
1793249247.560796
|
1793854047.560796
|
|
48816
|
My awesome macropad! by @nayeemtanvir7 | Stardance
|
nayeemtanvir7
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @nayeemtanvir7 | St Title: My awesome macropad! by @nayeemtanvir7 | Stardance...
|
1793249245.818985
|
1793854045.818985
|
|
48815
|
My awesome macropad! by @jmjosephmartin82 | Starda My awesome macropad! by @jmjosephmartin82 | Stardance...
|
jmjosephmartin82
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @jmjosephmartin82 | Title: My awesome macropad! by @jmjosephmartin82 | Stardance...
|
1793249244.9329996
|
1793854044.9329996
|
|
48813
|
My awesome macropad! by @lakshya2911 | Stardance
|
lakshya2911
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @lakshya2911 | Star Title: My awesome macropad! by @lakshya2911 | Stardance...
|
1793249244.023285
|
1793854044.023285
|
|
48812
|
Electric drum set by @jayraj | Stardance
|
jayraj
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Electric drum set by @jayraj | Stardance
|
1793249235.9093437
|
1793854035.9093437
|
|
48810
|
My awesome macropad! by @rithikaramesh | Stardance
|
rithikaramesh
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @rithikaramesh | St Title: My awesome macropad! by @rithikaramesh | Stardance...
|
1793249233.8623064
|
1793854033.8623064
|
|
48809
|
PrasinoPad by @ArtemD | Stardance
|
ArtemD
|
0
|
10.25
|
0
|
[]
|
[{"post_id": 72047, "ts": "202 [{"post_id": 72047, "ts": "2026-09-22T02:00:54Z", "hours": 2.8756, "text": "Today I implemented an OLED Screen, finished the Model, PCB, and Project Files for my Hackpad. Here is specifically what I did: Added the OLED Screen Cutout to the Case Cut the Window for the 0.91-inch OLED Display in Fusion 360 Centered the Switches and Rotary Encoder along a Construction Centerline Removed Conflicting Constraints and Badges to fix Over-Constrained Sketch Errors Moved the Case USB Cutout to the Open End to prevent Collision with the Switches Fixed the Extrude Cut Profile to fully penetrate the Wall Configured and Compiled the QMK Firmware Added the Display Code to show “PrasinoPad” in the File keymap.c Fixed Typo and Syntax Errors in the File keymap.c Resolved ChibiOS Hardware I2C Compilation Errors Created the Configuration Files config.h , halconf.h , and mcuconf.h Cleaned the Redundant I2C Definitions in the File keyboard.json Compiled the Firmware to generate firmware.uf2 Updated the Schematic and PCB in KiCad Removed Floating Matrix Diodes for Direct Pin Routing Added the 4-Pin OLED Connector Header Corrected the Pin Wiring for the Switches, Encoder, and OLED Screen Added a PWR_FLAG and No-Connect Flags to clear ERC Errors Assigned Footprints for the Switches, Encoder, and OLED Header Imported the CAD DXF Layout to align the Footprints Cleared Old Matrix Tracks and repositioned the Microcontroller Routed Front Copper Traces and filled the Bottom Ground Plane Ran DRC with 0 Errors and 0 Unconnected Items Created Production Files and Organized the Repository Exported Gerbers and NC Drill Files into gerbers.zip Exported the Assembled STEP File and Individual Case STL Files Structured the Project into CAD, PCB, Firmware, and production Folders Created the File README.md with the BOM and Screenshot References Fixed WSL and Git Path Errors Published a ship post to #hackpad-ships on Slack Notes on today’s session: It was frustrating. My goal for today was to make an OLED screen that says “Prasinopad, “ finish the model, the PCB and all the other files files, complete the hackpad itself and prepare to ship it. In Fusion 360, when I went to make the hole for the screen, I noticed that the switches and knob from last time weren’t centered properly, so I had to align everything to the center and deal with lots of over-constrained sketch errors. Additionally, the initial place where I put the OLED screen cutout was in the way of the place where the USB port is, so I had to move the screen cutout to the top. While doing so, the sketch would not expand where I wanted it to and the cutout for the screen was divided into a part which cut through the case and another one which did not. In KiCad, my schematic had extra diodes that weren’t needed, and the pins were wired incorrectly. I rewired everything, added power flags, updated the footprint placements, and routed new tracks with a ground fill until DRC had zero errors. In QMK, compiling failed at first because of typos in keymap.c and missing hardware I2C definitions for the RP2040, but after creating config.h , halconf.h , and mcuconf.h , the firmware was successfully compiled. Lastly, organizing all the CAD, PCB, Firmware, and production folders to match the Hackpad guide and dealing with WSL and Git paths took lots of time. To sum up, there were lots of errors and they all were eventually solved, and the whole project is now organized and complete. I pushed everything on GitHub, made my ship post in #hackpad-ships on Slack, and will soon fill out the Hackpad submission form."}, {"post_id": 63316, "ts": "2026-09-07T02:08:29Z", "hours": 2.3067, "text": "Today I implemented a Rotary Encoder for my Hackpad. Here is specifically what I did today: Rebuilt the Case Adapted My Model to the PCB plate Precisely made Holes for the Keys Made Screw Holes at the Edges of the Case Assembled the Electrical Trace Pin Assignments Fixed Errors Fixed the Schematic Connection Fixed the Foorprint Errors for the Rotary Encoder Expanded the Case to resolve the Error of the Tracks and Pads being outside It Created the Configuration Files Solved the QMK Errors Overwrote the URL key in the File ‘keyboard.json’ with an actual GitHub Repository Link Fixed many Excess Attributes Corrected the Layout’s Coordinates by Changing the ‘x’ value to 0 (was 1) Replaced the QMK Template Tokens in the file ‘readme.md’ Added a SPDX License Identifier Header to the File ‘keymap.c’ Overcame the Missing SDK Header Errors Injected Board Definitions Added USB Identifiers Fixed Linker Errors Compiled the Project (to test if I did everything right) Notes on today’s session: Today was kind of tough. My goal for today was to make a rotary encoder, which I did make, but with lots of time put into the process. The process of making the PCB was mostly okay, but the case was harder to make (which sounds strange). In short, I compared the PCB and the case, and realized the case did not match the PCB. The case was one big model so I couldn’t place the PCB in it, but also that the holes for the keys and the knob weren’t accurate. So, I decided to redo the model from scratch. After the process, I was quite amazed of how the case was now neat, accurate, and tidy. The holes matched the keys and the knob, and the case now has two separate parts, meaning I could place the PCB in and close it with the top part. Lastly, I compiled the whole project to see if it works. And, in short, there were lots of errors. But, they all were eventually solved and the project was successfully compiled. Notes on the next session: Next time, I will build the RGB lights or the OLED screen."}, {"post_id": 57066, "ts": "2026-08-29T04:46:39Z", "hours": 2.0167, "text": "Today I added an extra key to my Hackpad. Here is specifically what I did: Made a Plan for how the Hackpad should look Configured Hardware Constraints Updated the KiCad Schematic to work with the new key Routed 4 key PCB Layout Passed the DRC Verification Edited the Model in 360 Fusion Added the Functionality of the New Key in the files ‘keyboard.json’ and ‘keymap.c’ Notes on today’s session: This session took more time than I expected. I usually have my devlogs after an hour of working, but today is the double of that. I thought adding another key to my Hackpad would be easy, but it was definitely not when placed in such a position. However, I did not just work on the part of adding a new key today. I also drew a plan for the whole Hackpad to guide myself and know how the final result should look. Notes on the next session: Next time, I think I will work on the part of adding a know. Since I know better how everything is done from today’s experience, I might even start doing the next part of the Hackpad, the OLED screen."}, {"post_id": 52079, "ts": "2026-08-22T04:45:47Z", "hours": 1.5003, "text": "Today I finally completed the Hackpad guide. Here is specifically what I’ve done today: Placed the plate correctly where it should be and extruded it Made the USB cutout. Set up QMK on my WSL (Lots of errors, lots of time spent) Cloned QMK Firmware and the Submodules Installed the Compiler Tools and Dependencies for my Environment Verified the Environment with a Test Build Created the keyboard in the terminal Fixed Permissions and Configuration Errors Compiled the Firmware Notes on the usage of AI: I have used AI to explain steps I could not do when trying, and breaking down steps in the guide that were not making sense. Additionally, I used AI when building the firmware because I don’t know much about building firmware. I did not fully rely on it, and I tried to analyze and understand everything it said so I can do whatever I asked by myself next time. There is actually a funny moment that happened today. When I was editing the code (files ‘keyboard.json’ and ‘keymap.c’), I copied some lines of code the AI had told be to write. Then, at the top I wrote code starting with the word ‘cat’, and I got an error when I tried to run the code. I read what it sent again and realized that line of code was meant to be written into the terminal to write the code through it, not straight into the code. Overall, I tried my best not to rely on Artificial Intelligence and understand what it replies with. Notes on today’s session: This was a pretty long one I must say. I estimated I would finish this in 30-45 minutes, but it took me 90 minutes, with 150 minutes total (with all the setting up/fixing WSL’s errors). A lot of today was downloading all the compiler tools and fixing bugs/errors. When I was downloading the compiler tools, there was one tool that took alone more than 25 minutes to download! I mean, it didn’t finish after 25 minutes, but I just couldn’t wait any longer and found a command which downloaded it in roughly 15 minutes. Also, there were a lot of WSL errors. I use windows and don’t have Linux, so I used WSL, which I thankfully had already installed. The most common errors were about missing and outdated tools for compiling and libraries of my WSL. It took me about 5 commands to fix these errors, and combine that with how long they download, that’s a lot of time! Although generally, I am happy with today’s session as I am finished with the guide and ready to add my custom features. Notes on the next session: Next time, I will start adding some basic custom features and stuff to my hackpad. I am thinking of LEDs."}, {"post_id": 50108, "ts": "2026-08-19T05:31:45Z", "hours": 1.0333, "text": "I completed most of the ‘making the case’ part of the Hackpad guide. Here is what I specifically implemented today: Downloaded and set up the Fusion 360 application Created a base for the case Extruded different parts of the initial sketch Made the plate using ai03’s plate generator with this pasted into the website: [“”,””,””], Importer the plate into my project Notes: Today was quite a frustrating day. The part of making the case is done through a program called fusion 360, but I never heard of it. The interface and buttons really confused me, and I was clueless how to make the holes properly, the outer rectangle, nor how to extrude both rectangles of the sketch (since when I tried to extrude one of the rectangles, the other one disappeared, and they would merge in one shape if I extruded them both). So I asked and AI to explain me how to do each step in the guide, step by step. The AI’s guidance really helped me, as I spent only 30 minutes not knowing what I was doing, not 3 hours. Notes on the next devlog: Next time, I will try to finish the guide and maybe start making my first adjustments to the keyboard."}, {"post_id": 47917, "ts": "2026-08-16T05:55:59Z", "hours": 0.5167, "text": "Today I took my first steps toward building my own Hackpad. Here is specifically what I did: Downloaded the KiCad application Set up the files/footprint libraries Designed my PCB Drew the schematic Routed the PCB Checked the PCB for malfunctioning (And fixed any mistakes made) Notes: I enjoyed today’s lesson. It was short, but exciting. I look forward into fully completing this guide and making a function Hackpad. Comments for the next session: Next time, I will continue going through the guide, just like today. A little longer I think."}]...
|
Title: PrasinoPad by @ArtemD | Stardance
Devlogs: Title: PrasinoPad by @ArtemD | Stardance
Devlogs:
Today I took my first steps toward building my own Hackpad. Here is specifically what I did: Downloaded the KiCad application Set up the files/footprint libraries Designed my PCB Drew the schematic Routed the PCB Checked the PCB for malfunctioning (And fixed any mistakes made) Notes: I enjoyed today’s lesson. It was short, but exciting. I look forward into fully completing this guide and making a function Hackpad. Comments for the next session: Next time, I will continue going through the guide, just like today. A little longer I think.
I completed most of the ‘making the case’ part of the Hackpad guide. Here is what I specifically implemented today: Downloaded and set up the Fusion 360 application Created a base for the case Extruded different parts of the initial sketch Made the plate using ai03’s plate generator with this pasted into the website: [“”,””,””], Importer the plate into my project Notes: Today was quite a frustrating day. The part of making the case is done through a program called fusion 360, but I never heard of it. The interface and buttons really confused me, and I was clueless how to make the holes properly, the outer rectangle, nor how to extrude both rectangles of the sketch (since when I tried to extrude one of the rectangles, the other one disappeared, and they would merge in one shape if I extruded them both). So I asked and AI to explain me how to do each step in the guide, step by step. The AI’s guidance really helped me, as I spent only 30 minutes not knowing what I was doing, not 3 hours. Notes on the next devlog: Next time, I will try to finish the guide and maybe start making my first adjustments to the keyboard.
Today I finally completed the Hackpad guide. Here is specifically what I’ve done today: Placed the plate correctly where it should be and extruded it Made the USB cutout. Set up QMK on my WSL (Lots of errors, lots of time spent) Cloned QMK Firmware and the Submodules Installed the Compiler Tools and Dependencies for my Environment Verified the Environment with a Test Build Created the keyboard in the terminal Fixed Permissions and Configuration Errors Compiled the Firmware Notes on the usage of AI: I have used AI to explain steps I could not do when trying, and breaking down steps in the guide that were not making sense. Additionally, I used AI when building the firmware because I don’t know much about building firmware. I did not fully rely on it, and I tried to analyze and understand everything it said so I can do whatever I asked by myself next time. There is actually a funny moment that happened today. When I was editing the code (files ‘keyboard.json’ and ‘keymap.c’), I copied some lines of code the AI had told be to write. Then, at the top I wrote code starting with the word ‘cat’, and I got an error when I tried to run the code. I read what it sent again and realized that line of code was meant to be written into the terminal to write the code through it, not straight into the code. Overall, I tried my best not to rely on Artificial Intelligence and understand what it replies with. Notes on today’s session: This was a pretty long one I must say. I estimated I would finish this in 30-45 minutes, but it took me 90 minutes, with 150 minutes total (with all the setting up/fixing WSL’s errors). A lot of today was downloading all the compiler tools and fixing bugs/errors. When I was downloading the compiler tools, there was one tool that took alone more than 25 minutes to download! I mean, it didn’t finish after 25 minutes, but I just couldn’t wait any longer and found a command which downloaded it in roughly 15 minutes. Also, there were a lot of WSL errors. I use windows and don’t have Linux, so I used WSL, which I thankfully had already installed. The most common errors were about missing and outdated tools for compiling and libraries of my WSL. It took me about 5 commands to fix these errors, and combine that with how long they download, that’s a lot of time! Although generally, I am happy with today’s session as I am finished with the guide and ready to add my custom features. Notes on the next session: Next time, I will start adding some basic custom features and stuff to my hackpad. I am thinking of LEDs.
Today I added an extra key to my Hackpad. Here is specifically what I did: Made a Plan for how the Hackpad should look Configured Hardware Constraints Updated the KiCad Schematic to work with the new key Routed 4 key PCB Layout Passed the DRC Verification Edited the Model in 360 Fusion Added the Functionality of the New Key in the files ‘keyboard.json’ and ‘keymap.c’ Notes on today’s session: This session took more time than I expected. I usually have my devlogs after an hour of working, but today is the double of that. I thought adding another key to my Hackpad would be easy, but it was definitely not when placed in such a position. However, I did not just work on the part of adding a new key today. I also drew a plan for the whole Hackpad to guide myself and know how the final result should look. Notes on the next session: Next time, I think I will work on the part of adding a know. Since I know better how everything is done from today’s experience, I might even start doing the next part of the Hackpad, the OLED screen.
Today I implemented a Rotary Encoder for my Hackpad. Here is specifically what I did today: Rebuilt the Case Adapted My Model to the PCB plate Precisely made Holes for the Keys Made Screw Holes at the Edges of the Case Assembled the Electrical Trace Pin Assignments Fixed Errors Fixed the Schematic Connection Fixed the Foorprint Errors for the Rotary Encoder Expanded the Case to resolve the Error of the Tracks and Pads being outside It Created the Configuration Files Solved the QMK Errors Overwrote the URL key in the File ‘keyboard.json’ with an actual GitHub Repository Link Fixed many Excess Attributes Corrected the Layout’s Coordinates by Changing the ‘x’ value to 0 (was 1) Replaced the QMK Template Tokens in the file ‘readme.md’ Added a SPDX License Identifier Header to the File ‘keymap.c’ Overcame the Missing SDK Header Errors Injected Board Definitions Added USB Identifiers Fixed Linker Errors Compiled the Project (to test if I did everything right) Notes on today’s session: Today was kind of tough. My goal for today was to make a rotary encoder, which I did make, but with lots of time put into the process. The process of making the PCB was mostly okay, but the case was harder to make (which sounds strange). In short, I compared the PCB and the case, and realized the case did not match the PCB. The case was one big model so I couldn’t place the PCB in it, but also that the holes for the keys and the knob weren’t accurate. So, I decided to redo the model from scratch. After the process, I was quite amazed of how the case was now neat, accurate, and tidy. The holes matched the keys and the knob, and the case now has two separate parts, meaning I could place the PCB in and close it with the top part. Lastly, I compiled the whole project to see if it works. And, in short, there were lots of errors. But, they all were eventually solved and the project was successfully compiled. Notes on the next session: Next time, I will build the RGB lights or the OLED screen.
Today I implemented an OLED Screen, finished the Model, PCB, and Project Files for my Hackpad. Here is specifically what I did: Added the OLED Screen Cutout to the Case Cut the Window for the 0.91-inch OLED Display in Fusion 360 Centered the Switches and Rotary Encoder along a Construction Centerline Removed Conflicting Constraints and Badges to fix Over-Constrained Sketch Errors Moved the Case USB Cutout to the Open End to prevent Collision with the Switches Fixed the Extrude Cut Profile to fully penetrate the Wall Configured and Compiled the QMK Firmware Added the Display Code to show “PrasinoPad” in the File keymap.c Fixed Typo and Syntax Errors in the File keymap.c Resolved ChibiOS Hardware I2C Compilation Errors Created the Configuration Files config.h , halconf.h , and mcuconf.h Cleaned the Redundant I2C Definitions in the File keyboard.json Compiled the Firmware to generate firmware.uf2 Updated the Schematic and PCB in KiCad Removed Floating Matrix Diodes for Direct Pin Routing Added the 4-Pin OLED Connector Header Corrected the Pin Wiring for the Switches, Encoder, and OLED Screen Added a PWR_FLAG and No-Connect Flags to clear ERC Errors Assigned Footprints for the Switches, Encoder, and OLED Header Imported the CAD DXF Layout to align the Footprints Cleared Old Matrix Tracks and repositioned the Microcontroller Routed Front Copper Traces and filled the Bottom Ground Plane Ran DRC with 0 Errors and 0 Unconnected Items Created Production Files and Organized the Repository Exported Gerbers and NC Drill Files into gerbers.zip Exported the Assembled STEP File and Individual Case STL Files Structured the Project into CAD, PCB, Firmware, and production Folders Created the File README.md with the BOM and Screenshot References Fixed WSL and Git Path Errors Published a ship post to #hackpad-ships on Slack Notes on today’s session: It was frustrating. My goal for today was to make an OLED screen that says “Prasinopad, “ finish the model, the PCB and all the other files files, complete the hackpad itself and prepare to ship it. In Fusion 360, when I went to make the hole for the screen, I noticed that the switches and knob from last time weren’t centered properly, so I had to align everything to the center and deal with lots of over-constrained sketch errors. Additionally, the initial place where I put the OLED screen cutout was in the way of the place where the USB port is, so I had to move the screen cutout to the top. While doing so, the sketch would not expand where I wanted it to and the cutout for the screen was divided into a part which cut through the case and another one which did not. In KiCad, my schematic had extra diodes that weren’t needed, and the pins were wired incorrectly. I rewired everything, added power flags, updated the footprint placements, and routed new tracks with a ground fill until DRC had zero errors. In QMK, compiling failed at first because of typos in keymap.c and missing hardware I2C definitions for the RP2040, but after creating config.h , halconf.h , and mcuconf.h , the firmware was successfully compiled. Lastly, organizing all the CAD, PCB, Firmware, and production folders to match the Hackpad guide and dealing with WSL and Git paths took lots of time. To sum up, there were lots of errors and they all were eventually solved, and the whole project is now organized and complete. I pushed everything on GitHub, made my ship post in #hackpad-ships on Slack, and will soon fill out the Hackpad submission form....
|
1793249232.6749456
|
1793854032.6749456
|
|
48808
|
astropulse by @elliotalderson | Stardance
|
elliotalderson
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: astropulse by @elliotalderson | Stardance
|
1793249230.576445
|
1793854030.576445
|
|
48807
|
Spacecore by @Pramodh19 | Stardance
|
Pramodh19
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Spacecore by @Pramodh19 | Stardance
|
1793249229.6787996
|
1793854029.6787996
|
|
43967
|
6-key macropad!! by @zsobix | Stardance
|
zsobix
|
0
|
11.56
|
0
|
[]
|
[{"post_id": 46356, "ts": "202 [{"post_id": 46356, "ts": "2026-08-13T15:00:56Z", "hours": 7.0858, "text": "Day three, four, five, six, and seven! ( ) Umm, i didn’t have much time this week to devlog, and also i didn’t feel like writing devlogs, so I’m writing this before my trip! (the days i’m going to reference are the days in the devlog, like first day -> day three) The first day, i rewired the pcb again, then made the bottom plate of the case. The second day, i made the rest of the case, then noticed that the front plate had a humongous forehead, so the next day I rewired the pcb (again). This is pretty normal with pcb design, is what i noticed. The 4th day was spent with case design, and it still had a huge forehead. the next day was spent with forehead smallening surgery, which included: rewiring the pcb remaking the case And it still has a huge ass forehead. The main problems were: the switches, rotary encoder and leds don’t have a cad model in kicad the oled display was in the wrong orientation the led footprint is probably in the wrong orientation I cannot work on the project for the next few days, after that ill probably start setting up the firmware. thanks for coming to my ted talk -zsobix"}, {"post_id": 42911, "ts": "2026-08-07T21:22:33Z", "hours": 3.3872, "text": "Day twooo Today I (basically) finished the schematics!!!! I still have to work on the pcb, because i “finished” it but it still has tons of errors, and the traces are all over the place. I did still have to fight with kicad, especially with adding down the traces. What I discovered, that pcb design is mostly connect the dots, with extra steps. I don’t have much to say, i was very locked in connecting the traces…. thanks for coming to my ted talk -zsobix"}, {"post_id": 42092, "ts": "2026-08-06T17:35:16Z", "hours": 1.0833, "text": "First devlogggggggg! I started making a hackpad!!!! I have no prior pcb knowledge, and i only watched some onshape tutorial, but it’s looking great! I read the hackpad tutorial beforehand, so working with kicad wasn’t that hard. I had to fight with both kicad and onshape, kicad for trying to wire up the switch legs and the xiao, and with onshape to import the plate dxf (it didn’t work ) I can’t work more today, because i have some eye problems. The pcb still looks very barren, so i’ll work on that tomorrow. thanks for coming to my ted talk -zsobix"}]...
|
Title: 6-key macropad!! by @zsobix | Stardance
De Title: 6-key macropad!! by @zsobix | Stardance
Devlogs:
First devlogggggggg! I started making a hackpad!!!! I have no prior pcb knowledge, and i only watched some onshape tutorial, but it’s looking great! I read the hackpad tutorial beforehand, so working with kicad wasn’t that hard. I had to fight with both kicad and onshape, kicad for trying to wire up the switch legs and the xiao, and with onshape to import the plate dxf (it didn’t work ) I can’t work more today, because i have some eye problems. The pcb still looks very barren, so i’ll work on that tomorrow. thanks for coming to my ted talk -zsobix
Day twooo Today I (basically) finished the schematics!!!! I still have to work on the pcb, because i “finished” it but it still has tons of errors, and the traces are all over the place. I did still have to fight with kicad, especially with adding down the traces. What I discovered, that pcb design is mostly connect the dots, with extra steps. I don’t have much to say, i was very locked in connecting the traces…. thanks for coming to my ted talk -zsobix
Day three, four, five, six, and seven! ( ) Umm, i didn’t have much time this week to devlog, and also i didn’t feel like writing devlogs, so I’m writing this before my trip! (the days i’m going to reference are the days in the devlog, like first day -> day three) The first day, i rewired the pcb again, then made the bottom plate of the case. The second day, i made the rest of the case, then noticed that the front plate had a humongous forehead, so the next day I rewired the pcb (again). This is pretty normal with pcb design, is what i noticed. The 4th day was spent with case design, and it still had a huge forehead. the next day was spent with forehead smallening surgery, which included: rewiring the pcb remaking the case And it still has a huge ass forehead. The main problems were: the switches, rotary encoder and leds don’t have a cad model in kicad the oled display was in the wrong orientation the led footprint is probably in the wrong orientation I cannot work on the project for the next few days, after that ill probably start setting up the firmware. thanks for coming to my ted talk -zsobix...
|
1793249228.762672
|
1793854028.762672
|
|
48805
|
My awesome macropad! by @jeev | Stardance
|
jeev
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @jeev | Stardance
|
1793249226.1384184
|
1793854026.1384184
|
|
71845
|
GaitShield by @Vidhyut | Stardance
|
Vidhyut
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: GaitShield by @Vidhyut | Stardance
|
1793249224.8077826
|
1793854024.8077826
|
|
71844
|
WarioWare Game by @a_car | Stardance
|
a_car
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: WarioWare Game by @a_car | Stardance
|
1793249223.9234324
|
1793854023.9234324
|
|
71843
|
Untitled project by @aryansynha | Stardance
|
aryansynha
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @aryansynha | Stardance
|
1793249223.0497723
|
1793854023.0497723
|
|
43965
|
My awesome macropad! by @Mylene | Stardance
|
Mylene
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Mylene | Stardance
|
1793246201.3434923
|
1793851001.3434923
|
|
48804
|
AstroRecon by @kanhi_chamoli | Stardance
|
kanhi_chamoli
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: AstroRecon by @kanhi_chamoli | Stardance
|
1793246200.4635444
|
1793851000.4635444
|
|
43964
|
My first slack bot! by @iqram | Stardance
|
iqram
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @iqram | Stardance
|
1793246197.2444303
|
1793850997.2444303
|
|
48803
|
Untitled project by @ranveer_ | Stardance
|
ranveer_
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @ranveer_ | Stardance
|
1793246196.3541105
|
1793850996.3541105
|
|
48802
|
My first slack bot! by @Aryan_Vasistha | Stardance
|
Aryan_Vasistha
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Aryan_Vasistha | St Title: My first slack bot! by @Aryan_Vasistha | Stardance...
|
1793246195.4322677
|
1793850995.4322677
|
|
48801
|
My awesome macropad! by @sai-Charan | Stardance
|
sai-Charan
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @sai-Charan | Stard Title: My awesome macropad! by @sai-Charan | Stardance...
|
1793246193.311848
|
1793850993.311848
|
|
48800
|
My awesome macropad! by @Bhullar1415 | Stardance
|
Bhullar1415
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Bhullar1415 | Star Title: My awesome macropad! by @Bhullar1415 | Stardance...
|
1793246192.409032
|
1793850992.409032
|
|
43962
|
BullPing by @Nabhay | Stardance
|
Nabhay
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: BullPing by @Nabhay | Stardance
|
1793246191.4998176
|
1793850991.4998176
|
|
43961
|
My first slack bot! by @vanuu | Stardance
|
vanuu
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @vanuu | Stardance
|
1793246190.5901268
|
1793850990.5901268
|
|
43959
|
Plant watering system by @PeterStankov | Stardance
|
PeterStankov
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Plant watering system by @PeterStankov | St Title: Plant watering system by @PeterStankov | Stardance...
|
1793246188.4397705
|
1793850988.4397705
|
|
43957
|
Sound Board by @LeonOMO | Stardance
|
LeonOMO
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Sound Board by @LeonOMO | Stardance
|
1793246187.5522854
|
1793850987.5522854
|
|
43956
|
gnArpkrAll by @Regonold | Stardance
|
Regonold
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: gnArpkrAll by @Regonold | Stardance
|
1793246186.6719427
|
1793850986.6719427
|
|
43955
|
Ucraft by @urustam | Stardance
|
urustam
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Ucraft by @urustam | Stardance
|
1793246184.5332122
|
1793850984.5332122
|
|
43954
|
Freshman academy by @academ | Stardance
|
academ
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Freshman academy by @academ | Stardance
|
1793246183.6197686
|
1793850983.6197686
|
|
43953
|
New-tab by @Praknoor | Stardance
|
Praknoor
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: New-tab by @Praknoor | Stardance
|
1793246182.7021294
|
1793850982.7021294
|
|
43952
|
Virelia by @Jmshid | Stardance
|
Jmshid
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Virelia by @Jmshid | Stardance
|
1793246180.6115296
|
1793850980.6115296
|
|
43951
|
Ecowise by @uzoqovislom2468_com | Stardance
|
uzoqovislom2468_com
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Ecowise by @uzoqovislom2468_com | Stardance
|
1793246179.2020392
|
1793850979.2020392
|
|
43950
|
cosmo mind by @growwithgrace97 | Stardance
|
growwithgrace97
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: cosmo mind by @growwithgrace97 | Stardance
|
1793246176.612376
|
1793850976.612376
|
|
24458
|
LIDAR_Guard by @percentchunk376 | Stardance
|
percentchunk376
|
0
|
4.12
|
0
|
[]
|
[{"post_id": 14831, "ts": "202 [{"post_id": 14831, "ts": "2026-06-24T02:58:17Z", "hours": 1.7367, "text": "Welp, that was an eventfull day, checking with my progress so far, we are about 15-20% complete. dudes we have 3-4 hours of coding done. In total today we: Simulate the room scan, detect the anomaly, tracked the movements, calculate the distance, and direction, draw the movement path, we can also save the event, and we can load and reply the saved event data."}, {"post_id": 14640, "ts": "2026-06-23T20:28:37Z", "hours": 0.8808, "text": "OK so quick update, I finished the curve modeling, and I am now working on the curve position so that I get where anomaly is in real time. Sooooo we are a good amount of coding in for the first day, and lowkey doing this no music, so my head is getting fried. :)"}, {"post_id": 14513, "ts": "2026-06-23T17:33:56Z", "hours": 0.7189, "text": "Finishing up the logic with the simulated data on our pretend lidar so we know it works when we get the real one. We just need to highlight the anomaly with a certain color. The missing wall problem will be fixed later as the real LIDAR will set a baseline, and then it will compare the distances."}, {"post_id": 14384, "ts": "2026-06-23T14:31:45Z", "hours": 0.7831, "text": "This the pilot devlog for our LIDAR guard, this system will be able to track anamolys, and report them to a remote controller as well as saving them to an sd card for tracking a visual map. I am also incorprating a website almost, where you can visually see the map."}]...
|
Title: LIDAR_Guard by @percentchunk376 | Stardance Title: LIDAR_Guard by @percentchunk376 | Stardance
Devlogs:
This the pilot devlog for our LIDAR guard, this system will be able to track anamolys, and report them to a remote controller as well as saving them to an sd card for tracking a visual map. I am also incorprating a website almost, where you can visually see the map.
Finishing up the logic with the simulated data on our pretend lidar so we know it works when we get the real one. We just need to highlight the anomaly with a certain color. The missing wall problem will be fixed later as the real LIDAR will set a baseline, and then it will compare the distances.
OK so quick update, I finished the curve modeling, and I am now working on the curve position so that I get where anomaly is in real time. Sooooo we are a good amount of coding in for the first day, and lowkey doing this no music, so my head is getting fried. :)
Welp, that was an eventfull day, checking with my progress so far, we are about 15-20% complete. dudes we have 3-4 hours of coding done. In total today we: Simulate the room scan, detect the anomaly, tracked the movements, calculate the distance, and direction, draw the movement path, we can also save the event, and we can load and reply the saved event data....
|
1793246174.4064229
|
1793850974.4064229
|
|
14101
|
My awesome macropad! by @novexiaBB | Stardance
|
novexiaBB
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @novexiaBB | Starda Title: My awesome macropad! by @novexiaBB | Stardance...
|
1793246173.4798534
|
1793850973.4798534
|
|
32545
|
Untitled by @Bandit | Stardance
|
Bandit
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @Bandit | Stardance
|
1793246172.5994265
|
1793850972.5994265
|
|
37590
|
Untitled project by @alex4 | Stardance
|
alex4
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @alex4 | Stardance
|
1793246171.734105
|
1793850971.734105
|
|
2083
|
My awesome macropad! by @Elliott | Stardance
|
Elliott
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Elliott | Stardanc Title: My awesome macropad! by @Elliott | Stardance...
|
1793246169.6142032
|
1793850969.6142032
|
|
2682
|
My first slack bot! by @Banana_Bread | Stardance
|
Banana_Bread
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Banana_Bread | Star Title: My first slack bot! by @Banana_Bread | Stardance...
|
1793246168.7320366
|
1793850968.7320366
|
|
8893
|
My first slack bot! by @Srinija | Stardance
|
Srinija
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Srinija | Stardance
|
1793246166.9101386
|
1793850966.9101386
|
|
24632
|
My awesome macropad! by @aarushkus9 | Stardance
|
aarushkus9
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @aarushkus9 | Stard Title: My awesome macropad! by @aarushkus9 | Stardance...
|
1793246165.9980187
|
1793850965.9980187
|
|
21220
|
Factorythm by @mervin | Stardance
|
mervin
|
0
|
4.27
|
0
|
[]
|
[{"post_id": 15746, "ts": "202 [{"post_id": 15746, "ts": "2026-06-25T16:52:12Z", "hours": 0.8714, "text": "Now, when you press “New Game”, a screen appears where you will later be able to build your factory. You can drag the view around to explore more of your music factory! Next Update The next update will contain the first two components: The Impulse Machine – produces impulses with the note C and sends them to the second component. Note Lines – have one input and create sounds from the incoming notes. I’ll update this project again in about one week, so make sure you don’t miss it!"}, {"post_id": 14683, "ts": "2026-06-23T21:28:26Z", "hours": 3.3947, "text": "Factorythm is taking shape and the game itself is also making progress that I’ll show you in the next devlog! so follow to dont miss the future work on this"}]...
|
Title: Factorythm by @mervin | Stardance
Devlogs: Title: Factorythm by @mervin | Stardance
Devlogs:
Factorythm is taking shape and the game itself is also making progress that I’ll show you in the next devlog! so follow to dont miss the future work on this
Now, when you press “New Game”, a screen appears where you will later be able to build your factory. You can drag the view around to explore more of your music factory! Next Update The next update will contain the first two components: The Impulse Machine – produces impulses with the note C and sends them to the second component. Note Lines – have one input and create sounds from the incoming notes. I’ll update this project again in about one week, so make sure you don’t miss it!...
|
1793246165.1091833
|
1793850965.1091833
|
|
37389
|
Bio-Flow by @IvyMycelia | Stardance
|
IvyMycelia
|
0
|
21.18
|
0
|
[]
|
[{"post_id": 78932, "ts": "202 [{"post_id": 78932, "ts": "2026-10-12T02:39:38Z", "hours": 17.0697, "text": "What Happened? Been a while, hasn’t it? Anyways, some background context I feel is worth mentioning: BioFlow was created for a research project of mine. Not for anything less specific, not to be used as a universal tool — though that’d be nice! When I first made it, I realized pretty quickly that.. I’m not actually accomplishing anything for my research goal, but rather just trying to remake your generic Python Bioinformatics pipeline, which of course was not what I should focus on. As such, you’ll notice the project in its entirety has been changed to reflect this. The actual Changes There’s a LOT of changes, obviously. It’s around 10 hours worth of direct coding work (not counting all of the time spent doing research, gathering data, making decisions and creating formulas, etc.), and — as per usual — I didn’t break it up into multiple devlogs. Instead, I locked in for 4 days, and now we have: A computational analysis pipeline written mainly in Flower, which reads species metadata and protein annotations from TSV files, validates them, and exports candidate-family counts and normalized features. I used a C bridge for file access and numerical parsing. Five initial candidate categories, specifically laccase-associated proteins, manganese peroxidase, lignin peroxidase, versatile peroxidase, and cytochrome P450 candidates. Deduplication and conflict handling allows repeated hits and multiple annotation sources to not inflate the number of proteins counted, and proteins with competing family assignments are recorded as conflicting and excluded from the family counts. Proteome-size normalization, where candidate counts are expressed per 1,000 predicted proteins, whilst preserving the raw counts. Missing, zero, or inconsistent denominators produce (clearly marked!) missing values. So yea, that’s what’s been happening. Eventually I’ll link the paper to this somehow, and of course keep the analysis pipeline open source completely for reproducible results and independent verification! Thanks for reading, much love <3"}, {"post_id": 34947, "ts": "2026-07-26T02:04:35Z", "hours": 4.1069, "text": "Devlog: Documentation and v0.1.0 Date: 2026-07-22 Instead of jumping right into code — like I normally do — I decided to instead write documentation on how the project would be handled from a development standpoint. This included deciding on things such as Semantic Versioning, Conventional Commits, short-lived branches, and squash merges. None of it was particularly original, but the point was to remove any ambiguity regarding the actual developm from the actual work. I no longer need to wonder whether a feature belongs directly on main , what a release branch will be named, or whether generated binaries should be comitted. I also decided that CHANGELOG.md would remain at the root similar to the README , and other policy documents / actual project-facing documentation would live under docs/ . The first code The original CLI I wrote walked over every argument and then tried to interpret options and commands inside that very same loop. This causes conflicts and issues, especially relating to reading a filepath that might not exist in argv . I replaced it with the rule that one invocation has one command, and everything after it belongs to that command. The accepted shape thus is now: bioflo <command> [arguments] Commands may officially be written with zero, one, or two leading dashes — though any amount of dashes is current accepted. Dash removal is bounded rather than handled by an open-ended pointer loop, so inputs such as - and -- cannot be walked beyond the end of the string. Testing this produced a strange error where for whatever reason my system got stuck on a kernel write request, which froze all other kernel requests and muddied any other programs from running in my terminal. I restarted my computer and that was that. Really annoying because for like 20 minutes I thought the issue was me . It was not. Sequence decisions The first actual library module handles basic DNA sequences. Currently, a valid sequence can contain A , C , G , T , and N . I chose to accept N because unknown bases are common in real sequence data — from personal experience. Lowercase input is rejected rather than normalized implicitly purely just because I haven’t gotten to it yet. Empty strings are invalid sequences, but I did make it so that GC content for an empty string returns 0.0 to avoid division by zero. GC content is returned as a fraction between 0.0 and 1.0 , not as a percentage. This is to keep the value reusable rather than prioritize presentability. I deliberately kept the public API small for now as to avoid overextending the first release: is_valid_dna count_nucleotide gc_count gc_content The base-checking helper I have kept private. This is my first attempt at treating prop as an explicit public-facing endpoint rather than using it for everything. What v0.1.0 means Version 0.1.0 is by no means a feature-complete release (obviously). It’s my first steps at not only making a specific library for bioinformatics, but also testing Flower’s ability to even create usable libraries. The CLI still does not read files, FASTA parsing does not yet exist, and case normalization / additional ambiguity codes are also deferred. In the coming planned work, I intend for Bio-Flow to reach a somewhat usable state in the hopes of utilizing it for some of my own personal projects :)"}]...
|
Title: Bio-Flow by @IvyMycelia | Stardance
Devlog Title: Bio-Flow by @IvyMycelia | Stardance
Devlogs:
Devlog: Documentation and v0.1.0 Date: 2026-07-22 Instead of jumping right into code — like I normally do — I decided to instead write documentation on how the project would be handled from a development standpoint. This included deciding on things such as Semantic Versioning, Conventional Commits, short-lived branches, and squash merges. None of it was particularly original, but the point was to remove any ambiguity regarding the actual developm from the actual work. I no longer need to wonder whether a feature belongs directly on main , what a release branch will be named, or whether generated binaries should be comitted. I also decided that CHANGELOG.md would remain at the root similar to the README , and other policy documents / actual project-facing documentation would live under docs/ . The first code The original CLI I wrote walked over every argument and then tried to interpret options and commands inside that very same loop. This causes conflicts and issues, especially relating to reading a filepath that might not exist in argv . I replaced it with the rule that one invocation has one command, and everything after it belongs to that command. The accepted shape thus is now: bioflo <command> [arguments] Commands may officially be written with zero, one, or two leading dashes — though any amount of dashes is current accepted. Dash removal is bounded rather than handled by an open-ended pointer loop, so inputs such as - and -- cannot be walked beyond the end of the string. Testing this produced a strange error where for whatever reason my system got stuck on a kernel write request, which froze all other kernel requests and muddied any other programs from running in my terminal. I restarted my computer and that was that. Really annoying because for like 20 minutes I thought the issue was me . It was not. Sequence decisions The first actual library module handles basic DNA sequences. Currently, a valid sequence can contain A , C , G , T , and N . I chose to accept N because unknown bases are common in real sequence data — from personal experience. Lowercase input is rejected rather than normalized implicitly purely just because I haven’t gotten to it yet. Empty strings are invalid sequences, but I did make it so that GC content for an empty string returns 0.0 to avoid division by zero. GC content is returned as a fraction between 0.0 and 1.0 , not as a percentage. This is to keep the value reusable rather than prioritize presentability. I deliberately kept the public API small for now as to avoid overextending the first release: is_valid_dna count_nucleotide gc_count gc_content The base-checking helper I have kept private. This is my first attempt at treating prop as an explicit public-facing endpoint rather than using it for everything. What v0.1.0 means Version 0.1.0 is by no means a feature-complete release (obviously). It’s my first steps at not only making a specific library for bioinformatics, but also testing Flower’s ability to even create usable libraries. The CLI still does not read files, FASTA parsing does not yet exist, and case normalization / additional ambiguity codes are also deferred. In the coming planned work, I intend for Bio-Flow to reach a somewhat usable state in the hopes of utilizing it for some of my own personal projects :)
What Happened? Been a while, hasn’t it? Anyways, some background context I feel is worth mentioning: BioFlow was created for a research project of mine. Not for anything less specific, not to be used as a universal tool — though that’d be nice! When I first made it, I realized pretty quickly that.. I’m not actually accomplishing anything for my research goal, but rather just trying to remake your generic Python Bioinformatics pipeline, which of course was not what I should focus on. As such, you’ll notice the project in its entirety has been changed to reflect this. The actual Changes There’s a LOT of changes, obviously. It’s around 10 hours worth of direct coding work (not counting all of the time spent doing research, gathering data, making decisions and creating formulas, etc.), and — as per usual — I didn’t break it up into multiple devlogs. Instead, I locked in for 4 days, and now we have: A computational analysis pipeline written mainly in Flower, which reads species metadata and protein annotations from TSV files, validates them, and exports candidate-family counts and normalized features. I used a C bridge for file access and numerical parsing. Five initial candidate categories, specifically laccase-associated proteins, manganese peroxidase, lignin peroxidase, versatile peroxidase, and cytochrome P450 candidates. Deduplication and conflict handling allows repeated hits and multiple annotation sources to not inflate the number of proteins counted, and proteins with competing family assignments are recorded as conflicting and excluded from the family counts. Proteome-size normalization, where candidate counts are expressed per 1,000 predicted proteins, whilst preserving the raw counts. Missing, zero, or inconsistent denominators produce (clearly marked!) missing values. So yea, that’s what’s been happening. Eventually I’ll link the paper to this somehow, and of course keep the analysis pipeline open source completely for reproducible results and independent verification! Thanks for reading, much love <3...
|
1793246163.98654
|
1793850963.98654
|