Activity

Ginobeano

Shipped this project!

Hours: 42.79
Cookies: 🍪 1178
Multiplier: 27.53 cookies/hr

I built Poseidon 1. A display upgrade for the Neptune 4 series class printers.

There is so much I like about this Project. I love the UI mostly because I am kinda a sucker for Material 3. It is just so good. But honestly, this is 1000x better than the stock display on the Neptune 4s. I like how it is compact, and this is kinda the first-ish hardware project I have ever fully finished and used daily.

There were a lot of things that were challenging. I am not great at UI design, so that part was pretty hard. The CAD isn’t hard, but I just haven’t done it in a while, so it took me a little bit. The building was also a little challenging with all the obstacles I faced.

I really like this project, and I am looking forward to a Poseidon 2 that fixes some issues I have with it.

Ginobeano

Video Finished

  • Finish Editing the Video
  • Uploaded to YouTube
  • Updated Flavortown project
  • Updated README
    Guys, we did it. As of writing this devlog, Poseidon 1 is finished.

I downloaded Capcut for my video editing needs. I mean, I guess it is fine. I didn’t love it, but nothing bad nor good.

I already had the flow of my video pretty much figured out. So I didn’t have to spend much time on that. Most of the time was spent on voice-over and script.

First Time doing this, so it wasn’t great. But it turned out better than I thought. I had a notepad open as my sort of teleprompter while doing the voiceover. I would just write what came to mind so I could say it smoothly while recording.

The quality isn’t the best. I don’t have many resources, so considering that it is good.

Anyway, after I edited it all, I uploaded it to YouTube. That part was pretty easy and straightforward.
After that, I updated my Flavortown Project and README.

And that is the end. Thanks for walking along with me on this journey, and hey, maybe at the next event, there will be Poseidon 2.

Changelog

Attachment
0
Ginobeano

Demo Video

  • Recorded videos for the demo video
  • Cinematic shots
  • Pan shots
  • Demonstration Shots
  • This is gonna be a great video
    Well, you know what is crazy? Poseidon 1 is done! Crazy right?

Anyway, back to the topic of today’s devlog. I recorded all the content and took all the pictures to fill in the rest of the README.

It was somewhat challenging. After all my first time really doing this. So starting out, it was pretty difficult, y’know, positioning, vibe, etc. Of course, I forgot to start the lapse, so I didn’t get that part, but whatever.

I experimented with a few shot types

  • Pan
  • Blur
  • Cinematic
  • Normal
  • Time Lapse
    I ended up doing a mixture of all for the final videos.
    I also recorded/planned many shots
  • Demonstration
  • Cinematic B-roll
  • Showcase
  • Explanation
  • and more
    So yeah, that is how my day went. Now the part I am most scared for editing and voice over, if I have any voice over.

Changelog

Attachment
0
Ginobeano

Building

  • Assembled Device
  • fix hardware issues
  • reflash RPi OS
  • Reinstall everything
  • Set up for final version

Guys, we did it!!!!! We have officially made it to building. And actually, I am done building it.

This has been a great project, but I am acting like we are done. We are not.

First off, and most obvious, I assembled the device. This took the most amount of time. I had glued it together, then something wouldn’t work, and the cycle continued. But eventually I got it all enclosed, and it works perfectly.

I had some issues with the touchscreen. I kept trying to figure out what it was. I spent maybe 15 mins trying to figure this out. Turns out I had the Data - and Data + swapped. So once I fixed that, the touchscreen worked amazingly.

Software was also a pretty sore spot. So I had kept the SD card from the old Pi Zero 2W, but I guess something went wrong, and the OS just didn’t work on it anymore. Anyway, so I had to reinstall RPi OS, not a big deal, just a little inconvenience. But then, for the life of me, the customization on RPi Imager would not work, so I couldn’t connect it to RPi Connect (my primary way of accessing the pi’s terminal). So I had to downgrade a good amount until it finally worked, and then pretty much everything was smooth.

So I still have to make the hardware demo video. I want it to look like a really good video, half for the votes and half for the votes, so really all for the votes. That is going to be a struggle, though, because I have never done content creation sooooooo.

Changelog

Attachment
0
Ginobeano

More Pages

  • Macros Page
  • List all macros
  • easy to tap macro
  • Light Page
  • Expressive Segmented design
  • Easy to understand design
  • Settings Page

Yay!!!! More Pages. Love to see it.
This is a bit of better news from my last devlog.

There are 3 new pages:

  • Light
  • Macros
  • Settings

The light page is simple by design; there is absolutely no need for an overly complicated page. There are two expanded buttons, one for the part light and one for the frame light. Keep in mind, this is a feature exclusive to the Neptune class of printers with OpenNeptune and will probably not work on other printers.

The Macros page is also simple by design. It is a lot like Fluidd’s section for macros. It is simple but easy to read and compact. Just tap on a macro to execute it. It uses nice M3E buttons, so it looks good too. Very simple but good.

The Settings Page is quite barren at the moment. There really are no settings. This page is meant to be there for the future and to clear the stored connection so you can connect to a new printer, or if your printer changes IP.

All of these pages, while simple, add to the feel and usefulness of Poseidon 1 dramatically. We really just have to build this. I am so excited.

Changelog

Attachment
Attachment
0
Ginobeano

A broken pi

  • Tried to fix a pi
  • Tried to slim it down
    As you can see from the image. The pi is dead. RIP.

I had a little daughter board connected to it, and I need to remove it, and well, we didn’t do it the best way.

I got my dad to help, so we got the board off, but chiseled a bit of the edge of the board, and that was really our doom.

Chiseling the board connected GND and 5V together, which I fixed, but then it also severed a few connections, and now the board won’t turn on.

I had to buy a Pi Zero 2W off of Amazon, which is super expensive, but it gets here quickly. I also ordered one from FT, but that won’t get here in time.

I will probably return the PI from Amazon when I get my FT one and get my money back. Yeah, pretty sad though. But it should be good. Hopefully.

Attachment
0
Ginobeano

Bug Fixes

  • Fix stale print jobs
  • Add a dialog to the cancel button
    Quick devlog before I start building and assembling Poseidon 1.

So I fixed a bug that caused the print jobs objects to be stale. It would only update at startup. Now it updates every time you open the files page and when you start a print.

I also added a dialog to the cancel button to confirm with the user if they really want to cancel the print.

So quick, little one, just waiting for the parts to print.

Changelog

Attachment
0
Ginobeano

Finish CAD & README

  • add a stand to CAD to help stand up at a good angle
  • Guide Cutouts
  • Other Various CAD improvements
  • Enhance README
  • Table of contents
  • Why this exists
  • Features
  • Showcase
  • Description
  • Hardware Specifications
  • Added lots of images

Phew, that is a whole lot, and I have typed so much today because of the README.

Let’s start with the CAD. I added a nice little stand so Poseidon 1 can stand up at a near 45-degree angle, an angle I found is pretty ergonomic for this. I also added some cutouts and protrusions to help guide the casing when being assembled, so you can get it just right.

Next, the README, I want to keep this short and sweet because I wrote so much stuff in the README. I took a lot of images of each component of Poseidon 1, and I looked at other Flavortown projects that got a good storytelling score to see what they did and how I can too get a good storytelling score. And then I just went into detail about my project, which you can read on GitHub.

Changelog

Attachment
Attachment
Attachment
0
Ginobeano

Fix image bug

  • Fix bug that stopped images from being uploaded for ships

This was a big hurdle for shipping. A few ships came through, and I couldn’t accept or deny because there was a bug in the image URL function, and I couldn’t review any ships.

Now that this is fixed now allowing users with the correct perms review ships correctly.

Changelog

Attachment
0
Ginobeano

Auto Discover

  • Auto-discover printers on your local network
  • Uses mDNS
  • Stores connection details
  • Easy setup
  • Windows is actually garbage, and for some reason, mDNS doesn’t work on it.
  • Convenient page to list all discovered printers
  • Easy to use/understand

We did it, finally we did it. We got auto-discovery working. This was a bit of a doozy. Get working, so let’s go through everything.

First of all, I got basic mDNS going using multicast DNS, and it actually would’ve kinda worked, but Windows being Windows, even though my implementation was completely right, it wouldn’t work and kept giving me error 10042, which was super annoying, and I kept trying to fix it, looking it up using AI everything. None of that fixed it, so I booted into Fedora, and guess what, it works. I honestly hate Windows so much it is complete and utter garbage.

Then, while it was searching, it wasn’t finding anything, so it turns out Open Neptune doesn’t have mDNS enabled by default, so I turned that on, and it started working.

After I got all of that sorted out, the rest was relatively easy. I saved it to storage to not have to select your printer every time and just fleshed it out.

I made a quick little screen, kinda like a setup screen, where you select your Printer to connect to. simple but good.

With that, another big item is off the list, also btw the case I printed, and it actually fits really good first try.

Changelog

Attachment
0
Ginobeano

Top CAD

  • modeled pi standoffs
  • modeled pi ports
  • fixed HDMI and etc sides
  • modeled top CAD
  • branding on bezel
  • and more

So the first version of the CAD is done!!!! ish. I finally modeled the top piece of the case.

I printed the bottom case and noticed a few issues. I switched the sides for the HDMI port, etc., so I had to switch that. I didn’t know how to mirror it, so I ended up recreating it.

I sketched out the standoffs on the pi and display that I will use to connect them both. I also made a cutout bar for the ports for the Pi.

Now, as I said before, I will have to route the HDMI cables and USB cables externally because I don’t have a DSI display, and it is too small.

I also added Poseidon 1 on the bezel just to y’know make it look cool.

Speaking of looking cool, after I print this out, I might add some more cosmetic features to the CAD.

Until then can’t really do a lot until I get the piece printed. I might work on the app a bit more, but idk.

Attachment
Attachment
0
Ginobeano

CAD

  • modeled display
  • modeled pi
  • modeled bottom/display side
  • HDMI cut out
  • USB cut out
  • USB & HDMI Labeling
  • Pwr & Up & Down labeling

We finally got to CAD. We are approaching the final stretch. One thing about CAD, though … I hate it. idk what about it, just not my cup of tea.

However, I still have to push through. I started off by making the basic shapes of the main components, the pi and the display. This was pretty easy, just taking some measurements off their website.

Then I started modeling the Bottom case. This is the side that the screen goes on, so maybe the top part idk. On here, I added a bezel labeling for the ports and buttons, etc. I also sketched out the port cutouts, but obviously, you can’t see them.

All of this really led me to think, “ Wow, my display is really inadequate for this.” It is too small, and HDMI is not the way to go with this at all. It should be maybe 5-6in and be DSI, so I don’t have to deal with bulky USB and HDMI cables. The worst part is that, for some reason, the data USB doesn’t supply power or not enough power, so i have to solder to the underside of the board. If there was more time for it to arrive, I would, but it just won’t get here in time.

Attachment
0
Ginobeano

Printing Page

  • Printing Page
  • Material 3 Expressive design
  • Easy Stats for Extruder Bed and Fan
  • Pause/Resume button
  • Cancel button
  • accurate time remaining
  • accurate percentage
  • layers info

This is really starting to feel like a real thing coming to fruition.
This is the Printing Page. You get transported here when your printer starts printing.
This is definitely a big achievement and milestone for Poseidon 1. I mean, before it felt like something, but definitely not anything you could actually use. But with this, I am starting to think you could actually do stuff with this now.
With the completion of this, the software is almost done. I might add a few more things to flesh it out, optimization, etc., but I do kinda gotta hurry this up, seeing that Flavortown ends in 11-ish days. After this, I think I will work on the hardware, so pretty much just CAD. I have everything else working. I might, if given enough time, make an image that has this preloaded and everything needed, and boots it up automatically; that would be cool.
This is still definitely not yet a replacement for Fluidd. Given enough time, and if I had a bigger screen, I could fit more info on here and have time to implement it, so maybe for Poseidon 2?????? Anyway, I am super happy how this turned out and can’t wait to continue this.

Changelog

Attachment
1

Comments

Trey
Trey 14 days ago

This looks great!

Ginobeano

Tune Page

  • Added tune page
  • Tabs
  • Modular Widget
  • Move Widget
  • Temp Widget
  • Presets
  • Emergency Stop
  • Homing
  • Step Amount

Wow, am I burnt out. I need a break after all this. At least it is done. Looking back now, I have done a bunch of stuff.

So the tune page is more like a container for the move and temp Widgets. How I built it was that the Temp and Move pages are actually widgets, so I can use them in other places, such as a printing page, and embed them into the UI. The Move page took the most time by far. I just couldn’t get the UI right at all. It was a pain. Once I finally got it all, then for some reason it wouldn’t scale right at all. I got really mad at this, I mean, really mad. So I scraped the whole thing and rebuilt the entire Page with a slightly new design. And this one scales correctly.
I never knew you were able to attach more than one file, so that is great. You can see both. But otherwise, the actual implementation of the backend stuff wasn’t hard at all. The hardest part about it was that before I was going to have a field for z offset, I probably could add it, but I think there is a better way, and I just scraped it for now.
Then, the Temp page I made it more colorful, indicating the place for the extruder and bed. Still on the edge if I should remove the colors idk but I think maybe I will keep it. I also added presets because it is quite hard to manually press +5 like 42 times just to get to 210, so yeah. I also need to add a filament page, but idk where to put that now

Changelog

Attachment
Attachment
0
Ginobeano

Files Page

  • Added Files Page
  • Print History
  • Easy reprint
  • Easy file deletion
  • Glancable stats
  • Thumbnails
  • Printer storage
  • Filters

Phew, quite a lot done. But let’s talk about the elephant in the room. The Files Page

I am really liking how this looks. I know there is only one item, but I really don’t keep many stored files on my printer. But you can see it still.

First and most prominent, you have the thumbnail preview so you can easily and visually search for the file you wish to print.
Then it tells you the filament weight, good for gauging if you have enough filament for the print.
Then the layer height tbh this one just kinda looks cool and fills in empty space but still helpful ig.
Then, finally, the estimated time. Do I really need to explain why this is helpful?

So this is a scrollable view when eventually you have more than 4 files, which most people do.
You can also sort newest first or oldest first also very helpful.
Right now, if you hold a print, then it selects it and shows a delete button on the top right. I am thinking about either adding more actions to the top right or making a context menu; both would be good.
That is pretty much all for the files page. I had to adjust some stuff in the backend, but boring to talk about.

I also had a little bit of time in Figma, just very roughly sketching out the designs.

What I did today


  • Add files page
  • Modify backend stuff
  • Rough sketches in Figma

Changelog

Attachment
0
Ginobeano

Shipped this project!

Hours: 18.53
Cookies: 🍪 526
Multiplier: 28.39 cookies/hr

This is Boot. My project for almost a year now. It is my YSWS (now active btw), where you build your own OS, and you get hardware to run it. This is now the second revision, which adds many, many features, QoL, pages, etc. I am really proud of how this turned out. I said it in my first ship message, I will say it again. I am most proud of this because it feels like a real product. I am actually making something someone else uses.

https://boot.hackclub.com/

Ginobeano

It’s beautiful

With that, Boot 2.0 is complete. It brings tears to my eyes.

Ok, maybe I am being a bit dramatic.

I finally got the shop filled and complete, along with some other things, so let’s go through them.

  • Modify Explore and Leaderboard
    I capped the Leaderboard to 10 entries. Currently, I just think it looks better, so that is why I did it. I also removed an old filter item from the explore page. I don’t have favorites anymore
  • Removed Auth Note
    A leftover element from back when you had to re-authenticate to order something.
  • Fill Shop
    Finally, I also filled the shop with lots and lots of Prizes everyone will enjoy.

With that, Boot 2.0 is finished. I hope you guys enjoyed it. I will now proceed to ship it.

Changelog

Attachment
0
Ginobeano

One More Thing

We are so incredibly close. Just a little bit longer.

Orders are now officially implemented ultrafastparrot
Such an exciting thing!

  • fix guides button url
    With the new update to the landing page, the URL was changed, so I had to change it on the guides button too.
  • Shop Options
    Brand new! Just Implemented! Introducing Shop Options!
    Customize your prize to make it how you want. Choose color, Ram, Storage, anything really.

Ok real talk here though I just had to make the UI sobdissolve Still, I made everything before, and it is working great.

  • Orders
    The big one … Users can now finally order things from the shop!

This was kinda hard, but also not really. The hardest part was the edge function, mostly because I don’t know TypeScript, but we got through it. I also had to handle a few things on the client side, but yeah. You can now order stuff!

That is it for now. All I need to do now is fill the shop!

Changelog

Attachment
0
Ginobeano

So So Close

We are so close to shipping again. So close.

Anyway, we did quite a good amount today!

  • Add a guide button
    This was added for clarification, and so more people can easily access the guides. This coincides with an update to the guides page.
  • Remove reward prizes from the shop
    A little bug caused reward prizes to show up in the shop. So I fixed that
  • fix prize options
    A bug appeared that I could not add any objects to the prize options table; it seemed to be caused by a bad UUID. An important thing is that it is fixed.
  • Max quantity of 500 for grants
    I increased the quantity limit for grants to allow people to get bigger denominations.
  • Fill the shop
    I started to fill the shop with many cool prizes and way more to come.

I only need to do a few more things until I can ship again.
I need to fill up the rest of the shop and make the UI for prize options

What I did today

  • Increase quantity limit
  • fill shop
  • fix prize options
  • add guides button
  • fix other bugs

Changelog

Attachment
0
Ginobeano

Hooray, I got the home screen on my screen/pi!

So I finally coded the Home Page into the Flutter App. It was definitely more challenging than I expected, but I got there soon enough.

I haven’t completely finalized it; there were some oddities going from Figma to Flutter, as in it might look different in Figma than it does in Flutter, mainly because of resolution/ screen size.

I got most everything functional, though.

  • Nozzle Temp
  • Bed Temp
  • Printing State
  • Working with Moonraker

Some of the icons are temprary mostly because I didn’t feel like adding them to my assets, but I will fix that soon enough.

So far, this project is going great. I can’t wait for it to be finished.

What I did today


  • Code UI into Flutter
  • Make UI functional
  • Make Navrail Widget
  • Make UI responsive to Moonraker

Changelog

Attachment
0
Ginobeano

The Shop REDO

Nice title, right?

Anyway, I redid the Prize Details Page today. At first, I wasn’t going to, but I figured I should to match the redid shop.

I believe it does look a bit better, but not as good as the shop redo. This didn’t take as long as the shop redo, obviously.

The Prize details page includes two sections

Details Section


  • Image
  • Title
  • Description
  • Specs (If any)

Checkout Section


  • Quantity
  • Price Breakdown
  • Checkout Button

While making this, I decided to get rid of some prize types, such as grants. Grants will still be available, but not custom ones. If you want to stack grants, just buy multiple.

Very few things remain

  • Remove Grant type
  • Order Function
  • Modify Prize Creation
  • Filling Shop

After all that, I should be good to ship once more

What I did today


  • Prize Details Page Redo

Changelog

Attachment
0
Ginobeano

Introducing the new shop.

Meet your new favorite place on the dashboard. Completely rebuilt from the ground up.

This was a long one. Honestly, I am surprised I worked this long.

Starting with the obvious. I did take inspiration from the Flavortown shop. Hey, if it ain’t broke, don’t fix it. It certainly isn’t a direct copy. I added my own edits and tweaks.

Features

  • Badges for New, low stock, out of stock, and keyed
  • Recently added prizes
  • Search bar
  • Sort By dropdown
  • Country dropdown
  • Auto finding country
  • How many more coins can you not afford
  • Separate keyed section for those prizes you have not unlocked yet

I really did add alot and it is a whole lot more fleshed out. I kinda winged the UI, just experimenting as I go. But I think it turned out well.

I think I might disable the feature that requires a certain number of OSes to be shipped before anyone can order anything from the store. This should help with motivation.

I still have to redo the prize details page. but idk if I will redo that from scratch. Maybe, actually probably will. I also have to add the navigation to the prize details page bhut that should be easy.

That is all from me. See you next time. Bye Bye

What I did today


  • Redo Shop From The Ground Up

Changelog

Attachment
0
Ginobeano

And tada!!!!

The home page design is now done.

This took a while, and I mean a while. Hopefully, it doesn’t take this long for all the other screens. It mainly took this long because I was experimenting with color stuff diffrent designs and establishing a base. Now that all of that is done it should take me significantly less time to make each screen.

I have changed a lot and I think it looks so much better. I am still a little skeptical of the two big buttons since their function is kinda duplicated on the nav rail but I think it looks fine enough.

I have changed alot and here are a few notable ones.

  • Borders on the Quick stats
  • selection pill on the home page
  • tonal buttons
  • Font
  • Filled Icons
  • Increased size of Nav rail
  • and more
    Like a said I did a lot but those are the most notable changes.

What I did today

  • Improve home page UI
Attachment
0
Ginobeano

This has been a while.

This was mostly spent on Figma. I did a few things on VS Code, but very minor readability things that deserve no mention.

I made, after a lot of tinkering, a home page for Poseidon 1. I am really not good at UI at all, and I am trying my best. I have scraped many ideas after working on them, but honestly, that is just how UI goes.

Of course, this was built on material 3 because why would it not be? I think the dark mode looks better in this context. giving a more atmospheric oceany vibe like what I am going for with Poseidon 1.

There are still definitely some things I could improve with this design. I plan on tinkering more with it to make it look better. The thing I am most skeptical about is the two big buttons; they kinda look out of place, and maybe there is a better thing to put there, but idk. They are what I spent the most time contemplating on. The status doesn’t necessarily look bad, but ehh could be improved.

The nav bar should stay simple, but looks a bit generic and rushed in the state it is rn. I will play around with the icons and effects, maybe I can spice things up more.

Also, I really need to find a better font, the default one isn’t cutting it

Welp, that is it for me. Ig I should get back to work tbh I am kinda in the flow. Oh, also sorry for the 5-day break …

What I did today


  • UI design
Attachment
0
Ginobeano

We did it.

Quick devlog here. I decided I wanted to put this on my Pi to test it, and guess what…

IT WORKS!!!! It is so good to see that it works. And another good thing, Flutter Pi ran a whole lot smoother this time, running and building. Even with all the logic added.

Well, that is it super quick one to show it off.

What I did today


  • Put Moonraker Demo on pi
0
Ginobeano

This concludes another part. Sad to see it go.

Well, I added current print jobs. I can now track a currently active print for something like a print screen.

At first, I was just trying to do it with my print job objects, but it turns out that for actively printing things, you use the print_stats object.

I now have to move on to actually making the UI and stuff instead of just the backend. Sad, I know. It is weird because I feel like I am almost done, but I am not at all. Weird. Anyway, that is all for today. Next up, UI and other stuff.

What I Did Today


  • Current Print Job

Changelog

Attachment
0
Ginobeano

Well, this was a super repetitive, boring update.

First off, I fixed the bug that the hackatime session was being restored properly, but the hackatime auth page was still showing.

Then I kept getting a build error on Vercel. Turns out the package material_symbols_icons is now incompatible with the current version of Flutter. So I got rid of that. And that is where all the time went.

I had to manually painstakingly go through every script and replace instances of Symbols. to Icons. It was annoying, but eventually I got through, and now here we are.

This may speed it up a bit by not having another package, but probably not noticeably.

What I did today


  • Fix hackatime auth page bug
  • Remove Material_Symbols_Icons

Changelog

Attachment
0
Ginobeano

Another quite big milestone.

I finally got Print Jobs to work. I can now get my print history and even print out another model.

As you can see from the image, there is a new print job section, and there is a new button to reprint the most recent print. The reason there was no filament used and no print duration is that I cancelled the print, not that it is broken.

This is another huge milestone for Poseidon. I will focus now on current prints. And then I will probably have to do UI. yuck.

But in better news. We reached 10 HOURS!

What I did today


  • Print Jobs

Changelog

Attachment
0
Ginobeano

I did a lot today.

A lot in a short-ish amount of time. Today I did many, many things.

First off, I removed the old classes for the fans and print jobs. Then I changed the fan class. So, turns out the fan object is only one; it is just the part fan, so actually that simplifies things a bit, so I changed the fan class to reflect that. Macros, I changed a bit, only requiring the name and no G-code variable.

I added the objects variable to the Printer object alongside all the other changes. I added/ changed some of the functions for getting items based on statuses and subscribed to the new objects.

I also just realized that I haven’t devlogged since I got subscriptions to work, so I also did other things, such as identifying the connection with Moonraker and other things like that.

I finally added a bunch of misc functions, such as starting a print, executing a Macro etc.

I did more, but there is too much to put in this devlog. You can check the commit details.

What I did today


  • Identify connection
  • Re-do fans and macros
  • added misc functions
  • improved subscriptions
  • and more (read the devlog)

Changelog

Attachment
0
Ginobeano

Another big item off the list.

Today I finally got subscriptions to work! So any time an update comes through, it automatically updates the ui and the printer object.

It was pretty tough at first to get it working. So it turns out that when subscribing to these things moonraker only gives a partial update, so my function wasn’t setting the right values.

Updating the UI was also a bit of a hurdle. I never really had to do something like this before, well, at least in this way. I only used the SetState function; it is easy, and that is all I really needed to do. But this way with the ChangeNotifier **should ** be more efficient too. Oh, also, the ui only updates when the value changes, isn’t that cool?

Also, some minor things I rearranged, organized, etc the app a bit so it is easier to read and hopefully more efficient. I am really trying to do stuff efficiently because I am running this on a pi with 512 mb of RAMsob-ios

What I did today


  • Add Subscriptions
  • Add Change Notifier
  • Organize, clean up, etc code

Changelog

0
Ginobeano

Super quick one today, I just wanted to get this in as it kinda marks an ending spot.

So, as you know, last time we got Moonraker to respond and all that. But it was just a test implementation.

But now we have a real implementation with full reconnect and error handling setup and all that.

When it detects a disconect it will schedule a timer, and it will get longer and longer as time goes on. So it starts with 1 sec, then 5, 10, etc. Pretty cool.

I might research what I would have to do for auto detect, and we’ll pick up there next time.

What I did today

  • Fleshed out Moonraker implementation

Changelog

Attachment
0
Ginobeano

Airball after Airball

I pushed the new hackatime system, and to say the least, there were some issues.

It worked perfectly on localhost, but then when I pushed it to prod, everything started to go downhill.

So this is just me going back and forth, turns out I configured some things wrong in vercel.json, but also forgot to add the client ID to the prod app. sobdvd So that was cool.

I also closed the shop. Yes, sad I know, but I am redoing it, so yeah, good news there.

What I did today


  • Fix Hackatime Bugs
  • Close Shop

Changelog

Attachment
0
Ginobeano

Let’s go, I got Moonraker working.

While it might seem like a small victory, it is still a victory.

So all I did was set up a test function to test my WebSocket and JSON RPC 2 implementation, and as you can see from the image, it works!

This is my first experience with WebSockets and JSON RPC in general, but honestly, it was kinda easy to set up, and I also kinda cheated because I used a package that helps with some of these things, but hey, that doesn’t matter.

I am now going to figure out what to do for reconnecting and maybe even auto-discovery :0. After that, I will start setting up the classes with the actual functions and really get to work with it.

Honestly, kinda scared for the UI I am awful at UI, so we’ll see how it goes. I really want this to look good. First time using M3E Expressive.

What I did today


  • Set up WS and JSON RPC connection
  • Test function

Changelog

Attachment
0
Ginobeano

Big one today

Today was a big day for Boot. So I have had problems with people not being able to use it because they didn’t sign into Hackatime with Slack. Anyway, I asked for help and looked to see what other YSWSs did; turns out I should’ve created an OAuth app.

The OAuth app system is still not perfect. I liked not having another login page. But it is still good.

Anyway, this fixed it, and now it works reliably every time altough it added some complexity to the app, but ehh. The good news is that you should only need to do it once when you create your account.

I did run into an issue while implementing it, though it seems like it did not like to be run on browsers because of the CORS policy. So I had to make an edge function for logging into Hackatime. I wanted to do it without an edge function, but it is still good. This took me way, way longer than I would like to admit.

Another feature that piggybacks off of this is that since Hackatime OAuth sessions are long-lived, I can store them, and now you only need to log into Hackatime once to forever link your account.

Overall, pretty happy with this feature; it makes it more reliable and better in the long term.

What I did today


  • Hackatime Oauth

Changelog

Attachment
0
Ginobeano

Quite a boring devlog today.

I just looked through the docs of Moonraker and made some data classes.

Right now I have 6 data classes

  • fan
  • heater
  • macro
  • print job
  • toolhead
  • printer

The fan is well obviously for the fan and same for the rest. Printer is a class to hold the state and all other objects.

Sorry about the picture, I know I am not supposed to upload a picture of my code editor, but there is really no output difference.

What I did today


  • Setup moonraker

Changelog

Attachment
0
Ginobeano

We are back

This was spread out over a few days because some of it wasn’t significant enough for its own devlog.

The big addition is the AI statement section for declaring AI use. The policy is pretty much exactly the same as Flavortown’s. Hey, if it isn’t broke, don’t fix it.

I also fixed an error with uploading pictures, specifically when uploading an image for a shop item. I improved the edge function a little bit so it wouldn’t be so fussy.

I also fixed various minor warnings just to clean up some things.

What I did today


  • AI statement
  • upload image bug fix
  • fix warnings

Changelog

Attachment
0
Ginobeano

I take that back flutter-pi isn’t so much of a pain if you just work on Linux.

So I got it working on my screen, as you can see from the video. So turns out it needed linux but also it needed a slightly older version of Flutter 3.38.0. After I downgraded it worked well.

I am actually kinda surprised how well it works, like it gets a smooth 60fps on a Raspberry Pi Zero 2 W, I am surprised. Well, since I got that working, I guess it is time to actually work on the app and hardware.

I am deciding right now whether to work on hardware or software first. idk if I want to do hardware because I don’t like CAD.

What I did today

  • Get flutter-pi working on my pi
0
Ginobeano

Flutter Pi is such a pain.

I no joke spent this entire time setting up the pi and flutter pi.

The whole setting up the pi and Flutter Pi on the pi was easy, quite straightforward, but building the app is the problem. It would never work, from cryptic, undocumented errors to stupid windows, it just never would work.

There is a method for building apps that seems easier, but it is Linux only. Annoying, but you know, sure, and then that wouldn’t work, I think, because of a version mismatch, but by that time, I was done. I am just going to worry about this another day. It basically works, just I can’t get an app on there, not the pi’s fault.

What I did today


  • Set up pi
  • Set up flutter-pi
Attachment
0
Ginobeano

Welcome to Poseidon 1!

Poseidon 1 is a display upgrade to the Neptune 4 class printers. I only have a Neptune 4 Pro, so it will be mostly tailored to that printer. Oh, also, I have OpenNeptune sooooooo yeah if you care about that.

The current display is just quite bad. I mean, it works for super basic stuff, but not very well. This will be a replacement screen that still fits into the same holder for the display.

I am using Flutter for the UI mostly because I know it quite well, and it’s so easy to make good looking UI. Speaking of UI, I love Material 3 Expressive, and I found a package that includes the M3E components. And it looks so good!!!!. I can’t wait for this.

I have most of the parts already, so I don’t need a grant or anything. I am debating whether to use the same display connector. I could use it for power and maybe even serial, so you don’t need to be connected to the internet.

I plan on using Moonraker for communication with the printer, but like I said before, maybe even serial (It depends).

I can’t get over how good the M3E components look.

What I did today


  • Brainstorm the project (this is not time tracked)
  • Set up the Flutter project
  • Demo the M3E components

Changelog

0
Ginobeano

Let’s go! More things done!!!

The elephant in the room is the new Error Mapping. Now, every error that goes through the notifications will be put through an error mapper to get a more human-readable format.

Right now, the cases it handles are few but cover the most common errors. As I see more errors pop up, I will make sure to add a case for them. And of course, if no suitable error is found, then it will fall back to a unexpedcted error error.

But that is not the only thing I did today; I also added HCA user ID as a fallback for hackatime so just in case you don’t sign up to Hackatime with a Slack ID, then it should still be able to find you.

What I did today


  • HCA user id fall back for Hackatime
  • Error mapping

Changelog

Attachment
0
Ginobeano

Just a quick (well, quick-ish) bug fix today.

I tested out the shipping process, and for some reason, the function wasn’t calling. So turns out I did a little oopsie, and in the auth header I put the Anon key instead of the service key, so I fixed that.

This wasn’t in the repo; it was just a config thing, so no changes in GitHub, sadly.

In brighter news, my ship was approved, and I got cookies!

I think I am going to finish up the shop and then ship it one last time, then just focus on running it, actually.

What I did today


  • fix shipping bug
Attachment
0
Ginobeano

Shipped this project!

Hours: 32.19
Cookies: 🍪 932
Multiplier: 28.95 cookies/hr

I made a website for my new YSWS Boot. Boot is a YSWS where you build your own OS and get prizes for it. The hardest part was probably UI. Not really the building part of it, but designing it and making it look good. Honestly, I am proud of all of this. I have made many, many projects before, but they have never felt as fleshed out and real as this one. Hope you guys enjoy it.

Ginobeano

Today on I was bored today. Another feature, because I was bored.

When signing up, you will now be added to #boot and #boot-anouncements.

This did not take long at all. I seriously just copied the Slack message function. Welp, that is it.

What I did today:

  • slack invites

Changelog

Attachment
0
Ginobeano

I am really bored today …

I decided, in my boredom, to create a tutorial. It is similar to the one you can find here on Flavortown.

There are four tasks:

  • First Login
  • Verify Identity
  • Create first project
  • Create first devlog.

These objects are interactable, so if you click them, it will take you to where you can take action.

EX: Create first project -> Create project screen

Also, as a QoL feature, it automatically hides like it never was there when you complete all tasks.

Changelog

Attachment
0
Ginobeano

Quick one here today.

All I did today was just fix a few bugs. I am now pushing some of this stuff and doing more bug testing.

Some of the bugs I found:

  • Project restrictions were not being checked when editing a project
  • clarified hackatime text
  • fix duplicate username bug

I had some AI help with the Project restrictions only because I have already done all the logic. I just wanted an easy way to copy it over to editing.

I don’t suppose there to be alot more time tracked because it is all testing and doing stuff outside of VS Code

Picture of updated hackatime project note.

What I did today

  • Bug fixing
  • Bug testing

Changelog

Attachment
0
Ginobeano

Another one bites the dust.

Ha you see what I did there.

And with that, Shipping is marked off the checklist.

Today was very productive but a hair-pulling-out day. Today the biggest problem I had wasn’t even with the actual program itself no, it is stupid Docker and trying to get a local environment of Supabase going. I actually hate Docker. I installed it, and now I am getting Network changed errors (and yes I know 100% it is from Docker) but obvi that wasn’t spent in a code editor so it doesn’t count for time. Anyway, after I got all that sorted, I finished up the edge function by testing it. Really, all it was were very trivial things I had to fix, like misspellings, no point in documenting them here.

I also did some stuff yesterday, but it wasn’t that significant, just minor tweaks to the logic.

Picture of my ship approved timeline object.

What I did today

  • Fix Docker (Worst program known to man) and Supabase
  • Fix bug in auth code
  • set up local env
  • finalize a few things in the shipping function (DB, and edge)

Changelog

Attachment
0
Ginobeano

We are getting to the final stretch

This week, I have not had much time to work, but we worked a bit today (and the past two days).

I did pretty much everything for shipping. What I mean is that I have to send it to Airtable. It was a bit intimadating and I thought/researched hard about how I would go about this, but eventually landed on a system.

At the user login, it takes the access token and encrypts it with a super secret key (wow, so secret), then when it comes time to ship it wil decrypt that key and use it for what it needs to use it for. Now, full transparency here, I used AI for the crypto, no clue how that stuff works. And that is basically what I did. I am not quite done yet, but pretty close.

The picture is of the login screen. I have no idea what I could’ve done to show this. It is all backend stuff, and I obvi can’t show a pic of a test run, I can’t be giving out pii like that.

What I did today

  • Undo Hackatime Ban Testing Variable
  • Changed Auth Flow to include encrypted access token
  • Updated Ship Flow to include Airtable stuff

Changelog

Attachment
0
Ginobeano

Today was pretty easy!

Pretty much all I did was reinforce some of the banning checks, add some nice messages, and add conditions to shipping a project.

So now, if you are Hackatime banned it will not let you in at all. Also, with shipping projects, it won’t let you if you aren’t verified or aren’t YSWS eligible for some reason.

Oh, also, I added a section to the Ship approved item in the timeline to include the reviewer’s score so you can see in what areas you can improve!

What I did today:

  • Hackatime Ban
  • Shipping Conditions
  • Reviewer score

Changelog

Attachment
0
Ginobeano

Pretty small update today.

I added functionality for login hints. These will be utilized on the landing page for the get started field. Basically, it redirects people to the Hackclub auth login page, as if you had pressed the Login with Hackclub button, but also includes a login hint.

I also added the functionality to the redesign branch of the landing page repo.

What I did today:

  • Added route to app for login hint
  • Modified Sign in with hackclub function to include login hint
  • Made the button on the landing page do something

Changelog

Attachment
0
Ginobeano

Ok been a good amount of time since my last devlog. Sorry, I got busy. But I am back at it again now that it is the weekend!!!!

Anyway, today I worked on the prizes. More specifically, product config and variations. I added the logic and UI to the Admin_Page.

What I did today

  • Added updated logic for showing prize dialogs
  • Combined the edit and create new dialogs
  • Added product config to the logic
  • Added product config to the ui

Changelog

Attachment
0
Ginobeano

Hey, 2 devlogs in a day lets go.

This time it went much better.

I had to fix a bug with the upload edge function caused by not having the prefixes right. It took a little bit to completely fix, but mostly trivial. I added a section in the reviewer for an override hour justification. Again, pretty trivial.

What I did this time around:

  • Fix image upload bug
  • Added override hour justification

Picture showing images working again.

Attachment
0
Ginobeano

Today was literally awful. No joke, awful.

So all I did today was try to fix one single bug. Yes, that is right, one single bug.

So what is this bug that took me so long? It was quite a weird bug. Any time I would click on something interactive (more prevalent on the project page), the page would reload.

Weird, but I looked through the code to see if maybe I made a mistake and refreshed the page or called setState() wrong. I couldn’t find anything. I was getting desperate. I have already spent 2 hrs on this, and I needed to fix this. And of course, most of it didn’t count for hackatime, so that is great. Eventually, I had enough, and I used AI. And of course, that didn’t work either. I probably spent 25% of my copilot allowance just on that and got nowhere. Then I asked it to just write extensive debug logs of everything, and to my surprise, it worked. We found the issue turned out to be a bug in the deferred page system, so we got that fixed, and now it works. yay!

Oh, also, I added a survey to the shipping process.

What I did today:

  • Fix a bug that caused the page to rebuild and cause other weird behavior
  • Add survey to ship

Video of how it doesn’t reload every time now.

0
Ginobeano

First Devlog!!!!!!!!

Starting this on Flavortown a little late.
Since I am starting this late, I can’t possibly put down all that I did before I started. (Look at the commits)

Today I fixed some bugs that were reported

  • The edit project context dialog was acting weird and going to the top left of the screen, and you couldn’t click anything. It was caused by the widget I was using, so I changed my widget, and voila.
  • All other edge functions weren’t working after I migrated. Turns out I structured it wrong and accidentally put index.ts into a folder called source.
    New things:
  • Added some nice QoL things for devs:
    • Logger automatically sets its level to finest if it is running on localhost
    • Maintenance mode gets disabled if it is detected as running on localhost
  • Yesterday, I revised the FAQ and synced it up with the Slack canvas.
  • Today, I added a section on how to get Boot-Themed PFPs

The picture is of how the dashboard looks like now.

Attachment
0