#NacaPet - A personal vpet built from scratch

1699 messages · Page 2 of 2 (latest)

calm sundial
#

It didn't go great

#

Luckily I didn't break anything this time

calm sundial
silver crescent
#

"free me" in his eyes

calm sundial
#

I have to tidy up the wiring

#

I'm so amazed it worked first try

#

I suck at soldering

#

But if there's a challenge ahead I won't stop until it's complete

flint berry
calm sundial
#

i did hot glue it right now to keep it together and avoid wires breaking from movement

flint berry
#

hot glue and kapton tape are so nice for prototyping

calm sundial
#

i'll separate it later on whem i want to solder the reed switch and assemble it in the case

#

i did make a small soldering mistake where i soldered SDA from the accelerometer to ground, that's fixed now

#

accelerometer works great now

flint berry
#

it's coming together so wellllllllllllll

calm sundial
#

also shorted before the VBUS with my piezo speaker, but that's something i fixed quickly

#

next i have to do is 3d print a revised top cover, the one i made has a mistake

flint berry
#

you're super close to the full build 😄

calm sundial
#

revised top case has a small lip inside to keep the buttons in

#

this is so i can stick the screen as close as possible to the frame

flint berry
#

oh yeah that'll make it nice and thin

calm sundial
#

buttons do petrude a bit from the screen, and i have to add a lip to my buttons to avoid it falling from the case

#

tho before i try to print a new one, i want to see if i can create this lip on my print

#

don't want to waste more resin

flint berry
#

this is gonna look snazzy

plush frost
#

It’s almost there!!!

#

Wow so fast

calm sundial
#

I need to go fast, since I cannot focus on more than one project, I need to finish one before being able to continue with the other

trail saddle
#

Those buttons feel bad to me.
Some ESP32 dev boards use the AMS1117 as their LDO, but it's not ideal for power consumption measurements.
I think it's better to design a prototype PCB for testing.

#

I built an ESP32-S3 OLED Vpet last year, but the SSD1306 makes a high-pitched sound that I can't bear.

#

https://github.com/bitbank2/PNGdec
If you're going to use an SD card to store your graphics, I recommend using PNG files along with PNGdec.
PNG files are much simpler for end users to edit.
In my case, I load the graphics into PSRAM and render them in SRAM before feeding them to TFT_eSPI.

#

This is my ESP32 prototype board for the color vPet I built earlier. It includes buzzer, microSD slot, MPU6050 sensor and Li-ion charging circuit. But I've been playing with the Pi Pico these days. I still want IR function.

calm sundial
#

In my case I added a sort of line compiler onto the project to build the line and graphics, have to improve on it because I want to make it more user friendly

#

And honestly, I'd love to build a PCB for it with everything in it, will make things easier, but I don't know much about PCB design, and as I don't intend to sell them, idk

calm sundial
#

time to 3d print a revised case, should make it easier to fit the buttons and screen module

#

and sadly my ESP32 has no PSRAM, would love to have some to mess with higher quality backgrounds and such

plush frost
calm sundial
#

I was resin printing and I heard a loud noise, turns out I didn't screw the vat to the machine

#

Oh well, looks like nothing broke

#

Remember kids, check your machine before printing

#

At least the adhesion is good

calm sundial
#

Did a test fit with the broken screen

#

Exquisite

#

I'll remove it now since the inside isn't fully cured tho

flint berry
#

looking goooooooooooooooood

calm sundial
#

I'll also go tomorrow and see if I can get the reed switch and finish assembly

ashen furnace
calm sundial
#

I'm trying to make it fit into the most standard case looking thing yet

#

But I need room for the battery

#

And since I'm not doing a PCB one, I'm taking extra room just by the size of some useless components

#

I do wanna try to port my stupid vpet engine into a black and white version

#

With a proper LCD non backlit display

#

But that will see the light at a very very later date

calm sundial
#

Nailed the screen

oblique knoll
#

gg

calm sundial
#

i'm gonna buy the reed switch later

#

and finish this

#

then complete the assembly

plush frost
#

I see some heavy sanding there

calm sundial
#

Closed it temporarily

#

Need to redo the reed switch and move the speaker below the esp32

#

That way I'll have room for a battery

calm sundial
#

i might redo all my wiring ngl, wires are too long

flint berry
#

The bevels/edges/corners came out really nicely

calm sundial
#

first i have to learn how to use the solder sucker 3000

flint berry
#

Good luck! I couldn't get mine to work when I last tried. It might have been a technique/skill issue tho. Lemme know how it works out for you

#

I was considering desoldering wick for next try

calm sundial
#

i tried desoldering wick and also wasn't successful

#

i cannot get the solder to flow towards the wick, and there's solder left inside the holes

flint berry
#

Hmmmmm I wonder if you need to add flux to guide it for wick

#

Either way, there's gotta be something that works lol

calm sundial
#

also my soldering iron is much better than the one i had, but it also sucks

#

you have to press very hard for it to work

#

tip comes loose when being used, and doesn't transfer heat

plush frost
#

Need rosin flux

#

I basically never leave the soldering iron without tin

#

And everything works better

calm sundial
#

i did it

#

i learnt how to use the solder sucker 5000000

calm sundial
#

Redid soldering, I'm much more satisfied, the cables are shorter and I can fit the speaker within the top half

#

And I also got the hang of soldering

#

How it started

#

And now it's going much better

#

But I did break a few pads on the esp32, specially where I mapped the buttons

#

I was still learning how to use the solder sucker when it happened yesterday evening

#

And I accidentally attacked the top button to a strapping pin, which means I have to press it to boot the device and to program it

#

And how it's going

#

I'll move the top button to another pin later, shouldn't be difficult since now I know how to do it efficiently and without hurting the board

calm sundial
#

Dont get me wrong, it looks awful because it is

#

Consider this is my first time doing a heavy soldering project

#

Tho after I did solder my esp32 c3 for another project, and it came out very good, will show in a bit

calm sundial
#

Rate this attempt

flint berry
#

did you desolder that one?

calm sundial
#

Yep

#

It's much better no?

flint berry
#

So much better

calm sundial
#

Also I cooked myself medium rare with the soldering iron

#

Fuck

flint berry
#

Noooo 😦 I hope you're okay

#

I could hardly tell those pads had been used at all

hoary fjord
#

I didn't mean any ill will with the 😱
You're doing great, and making progress.
Hope you got some cold water on that quick! don't want any blistering.

#

Just make sure you clean up the flux to avoid corrosion 🙂

calm sundial
#

yeee, i need to get alcohol

#

also fun fact, i used fragments from an ethernet cable to assemble everything

hoary fjord
#

Dude recycling is always the way to go!
So much copper in those old network cables.

#

Whenever i get a new router from an isp i think. Hell yeah free copper wire!

calm sundial
#

honestly, i love this cable, i can solder to it very well, and it is very flexible

#

originally i was using solid core, and it wasn't working out

hoary fjord
#

solid core is great for breadboard and perfboards but that's about it.

calm sundial
#

i think i ran out of solder

hoary fjord
#

If you can get some leaded solder in your country, definitely go for some of that, it's way easier and better.
Can't get it in the USA and some other countries though.

#

Just make sure you don't breath it in at all.

calm sundial
#

found some upstairs i forgot i had

#

and this one is leaded

#

wooo

chrome pond
flint berry
#

I try to use gloves. It takes too much rubbing alcohol to get the flux residue completely off and it dries my skin way out

hoary fjord
flint berry
#

that's a good idea. i was using weak hand soap to try before

hoary fjord
#

i keep a bottle of dawn in my workshop instead of hand soap and that shit works wonders.

plush frost
#

If you put leaded flux on your hands it’s already late and you are absorbing lead through your skin

#

Better use some protection

calm sundial
#

I did not

plush frost
calm sundial
#

Ohh I see, yeah I'll keep in mind when buying flux

#

My flux has no lead

#

And I usually prefer unleaded when soldering

hoary fjord
#

Yeah I definitely don't have any lead in my flux and even my solder I don't handle directly.

calm sundial
#

Ello

#

We are back onto this

#

Ordered a new set of parts and made a PCB schematic

#

Gonna get a manufactured PCB

#

Also the design will have to change, but I can already say that the battery will be 2000 mAh

calm sundial
#

I should have all the pieces here in 10 days or so. This time I got myself a button less screen module, through hole switches, a few headers, another MPU6050, another ESP32, battery and charging module, and this time, to save space, I got a piezo disc speaker

#

The current pc buzzer setup needs a lot of clearance

#

I also was eyeing this out for another thing, looks very promising

#

I had an epiphany of a dual screen vpet, something where you have a main screen and then a low power screen that's always on displaying your little guy walking

#

But then I looked at how much free IO I have to work with

raw lintel
#

dual screen is if you want to have something on both at the same time.... if you are just going to be switching between both screens is better to have just one (my piece of mind) if you want to use that idea you need to take more advantage of it just than a low power alternative when the main is off (otherwise it wouldnt be worth it i think)

hoary fjord
#

I'm so keen to see this come together!
With all your work on other projects, I just know this is gonna rock!

calm sundial
#

and while i'm at it, might aswell design a board for a better wificom, rather than my cardboard box

#

i thought it'd be more difficult to make a board

#

turns out it's easier than i thought

calm sundial
#

Got some solder, gonna finish restoring my ESP32 and the display back to original condition

raw lintel
#

donetes were a must no doubt XD

calm sundial
#

Mercarroña is a stop between my home and the store

#

And I didn't have any merienda

#

So might as well get one

raw lintel
#

i got a sad yogurt to avoid going for the icecream xd

calm sundial
#

Make ice cream out of yoghurt

calm sundial
#

A bit of soldering and frustration later, I managed to solder pin headers back into my ESP32 and the screen, and it still works

#

The esp32 isn't happy

calm sundial
#

Esd go crazy

#

Anyway, looks like the screen is bigger than the one I originally had

#

From 1.3 to 1.54

#

Nice

#

I'll update the footprints later on

#

Once combined it shouldn't be bigger than this

#

Screen will be connected with a ribbon to the board, and the mpu will be on the underside

#

Battery looks like it will arrive in September, but I'm not in a rush

calm sundial
#

I think I just witnessed the wifi chip of my old esp32 die? For some reason it is not connecting to my home wifi anymore

#

Maybe it's something with the router? I'll see later

#

It was getting very very hot

#

At least this one works

hoary fjord
#

Esp32 can sometimes get stuck in a disconnected state. Use the function WiFi.disconnect(true,true) with those arguments.
This will clear the ap details and disable the radio.

calm sundial
#

i mean to have it always online

#

it's for another thing

#

even after rebooting it does not seem to want to connect to the network

#

oh nevermind

hoary fjord
#

Ap details are stored in flash memory, so a reboot will not actually reset the wifi configuration, only reinitialize it.

calm sundial
#

it's a thing with the wifi in the bottom floor

#

it's also happening with the new ESP32

#

guess i might have misconfigured the routers in a way so that they don't behave like standard access points in a mesh

hoary fjord
#

Even if you force an ap clear before it connects to the wifi initially that should resolve the issue.

calm sundial
#

gonna try then

#

yep, that fixed it

calm sundial
#

oh i just realized why it gets so hot when it loses connection, the chip tries to reconnect

#

i thought it just gave up

#

and very aggressively too, since it just takes a second after i press hotspot enable on my phone

oblique knoll
#

And maybe you just moved a bit away, gotta try again, with more intensity

hoary fjord
calm sundial
#

Will return to it while I'm doing VB Helper, been feeling the itch of not doing anything microcontroller related

#

First I'm gonna finish a few NacaBattle things and finish my exam week

#

I also had ideas as to how increase efficiency while dealing with the mpu6050 when the system is in sleep

#

I'm also debating whether to get a lower res screen in order to lower memory usage, or just get an esp32 with psram

#

But since I want to keep costs down for everyone who builds it, I'm gonna continue trying without psram

#

I also resurrected the chart hummus made up when I was trying to get ideas for lines in this device. I want another 6 lines, if anyone can help me do that I'd greatly appreciate it, I don't know much about line creation and I want to see something bug themed, metal themed, maybe also dragon and beast themed?

calm sundial
#

Let's trick this rust bucket into starting up, I feel like hatching something in my own vpet

calm sundial
#

I'm gonna change the layout a bit around, since I lost all the PCB files I was making and my 3d model did not fit, time to rethink

#

But let's not get ahead of ourselves, I still have to finish a few naca things and also a few vb things before returning to this

#

I do have to say, I did want to make it compatible with NacaStorage, but since it's supposed to be modular, unless I send all the line data and sprite data to NacaStorage, add each users lines, it's gonna be tough

fossil shaleBOT
#

@calm sundial has leveled up! (103 ➜ 104)

grand tinsel
#

I have finally found the forum for this

#

And my god am i interested

#

..also question
since this is open source, will there be a template made for NacaPet that will allow for modding in your own lines?

silver crescent
#

the implementation is the example.

grand tinsel
#

Huh?

silver crescent
#

assuming it has a release where it contains play-ready assets. those are the example.

grand tinsel
#

ohh

#

..so you can copy one and then edit the values to make a new egg group?

#

like
what the dm20 has with its multiple egg lines

silver crescent
#

well if naca has a 1-egg, all evos implementation (like all non-ver.20th vpets)... then no that wouldn't work.. you'd have to implement that.

grand tinsel
#

there was an egg selection proccess though i think

#

There is egg selection at least, so that means multiple eggs will be in NacaPet i think

calm sundial
grand tinsel
#

:0

calm sundial
#

I'll have to see how to handle custom lines in NacaStorage, because if this becomes popular, NacaStorage can potentially crash

grand tinsel
#

-# it's mostly because i have an unfinished mon line and i'm hoping to possibly finish it up and then run it on a vpet

calm sundial
#

So, I was determined to get 240x240 backgrounds working on this project

#

I wanted to take full advantage of the display

#

Well, I ran out of ram

#

So I had to improvise, and I got an esp32 S3, with 2MB of PSRAM and 8MB of flash

#

What does this mean? Build price increases by 4 euros or so

#

Also, should perform faster since I don't have to waste CPU cycles upscaling the images as they are rendered

#

Tbh, 2MB is a whole lot, I don't think I'll ever use more than 30%

#

The good news is, with the wificom apis I wrote for wificom ver naca, should allow this device to interface with naca without a computer

calm sundial
#

Should be getting the new esp32 tomorrow

#

I hope this is it

calm sundial
#

Look at that beautiful solder job, I can definitely say I've improved

bronze rain
#

Why do I now feel like there needs to be a “rate my soldering” channel lol that’s a beautiful job 10/10

calm sundial
#

uhhh

#

well

#

everything works, good news

#

bad news, i broke the screen again

#

Good news is, I had a backup plan

#

is someone counting the amount of screens i've gone through?

#

Also looks like the store I got the esp32 from sent an 8MB PSRAM/16MB flash by accident

flint berry
#

LOL it's gotta be like 3 or 4 now

#

i'm glad you had a backup in place tho

calm sundial
#

I'm gonna get 4 screens

flint berry
#

you can replace the screens on those right?

calm sundial
#

Yes

#

But I have to learn how to, since I want to get a mass producible board

calm sundial
#

How nice of this seller, 3 screens of the same type for 6 euros

warm bough
rustic lagoon
calm sundial
#

It is time to

#

Buy another screen

#

Quick update, I improved optimization, screen renders quicker now since it's not having to upscale at runtime

#

And now it saves progress

#

I'm still using my backup plan, since I didn't order new screens

#

Gonna tidy up some code and I'll upload everything to GitHub

#

Now, if anyone wants, I'm looking for help

#

Currently I'm trying to draft a few evolution lines for this vpet

#

And I need help at that, since I lack creativity to build the different evo lines

#

excellent, i did not document the process of creating a line

#

good lord, i need to organize how to create a line, this is pain

hoary fjord
#

How are you loading the data for each digimon, harcoded into program memory or loading it externally from a json or something?

calm sundial
#

It's from a custom data structure

#

And then I have a script in python that packs it into a binary file

calm sundial
#

i did also implement differential drawing instead of redrawing the whole screen, it improved speed by a lot

oblique knoll
#

isn't that what most video codecs do too?

calm sundial
#

yeah, but i didn't do it until now since i was still thinking on how to implement it

#

plus drawing stuff on a screen is something i'm not used to

#

there are a lot of things i have to improve upon in this code

hoary fjord
calm sundial
#

yeah, i'm going to end up using json on the import side, i want to make a web ui for customizing the roster eventually

hoary fjord
#

That's awesome, keen to see how it progresses.
If you are using a binary for your data, you can pack that into a partition image and then access directly from the flash since the flash is memory mapped. You can get extremely fast loads with that but you have to make sure everything is perfectly aligned in the predicted addresses.

calm sundial
#

yeah, i'm currently using the spiffs filesystem, and i switched the upscale to upon loading

#

so sprites loaded are 16x16 still

#

which allows me for crazy things with the 16MB of flash this thing has

oblique knoll
#

16 mb is a lot, ngl

calm sundial
#

i plan on adding 20 backgrounds, time aware, a mini farm and the rest for characters

#

every sprite sheet is like 6KB in my format

#

a bit more since it has a small header for attributes

oblique knoll
#

could you reduce that by reducing available colours? it's not like you need more than like, 30 colours per image

calm sundial
oblique knoll
#

fair

#

not everything has to be optimised

calm sundial
#
[DEBUG] Free memory: 7989543 bytes
[MAIN]: Hunger timer 2780, hunger 1
[MAIN]: Strength timer 211, strength 13
[MAIN]: Change timer 261715
[MAIN]: RTC time is 51537
[MAIN]: Sleep counter is 0
[MAIN]: Care mistake count is 0
[MAIN]: Is sleep care mistake tripped? 0

gonna leave this here as a note, and will see how the memory usage is after a bit

#

i don't want memory leaks

calm sundial
#

no memory leaks

#

let's raise betamon in another slot

calm sundial
#

gonna implement freezing

#

will come very useful now for pausing while i go out, since i cannot take this with me

calm sundial
#

had to modify the save structure, but now it should have freeze

#

out of bounds read, forgot to upload the sprite sheet to the device

#

awesome

calm sundial
#

i want to get greymon in my vpet, and i need to train 32 times

#

who programmed this line

#

oh.. right, it was me

#

32 times training later...

#

i got devimon

#
[DEBUG] Free memory: 7935055 bytes
[EVAL] cm=0, of=0, sd=0, ef=29
[EVAL] MIN cm=0, of=0, sd=0, ef=32
[EVAL] MAX cm=4, of=255, sd=255, ef=255
[EVAL] stb=0 stw=0
[EVAL] MIN stb=0 stw=0
[EVAL] NextID=4
[EVAL] Res 0
[EVAL] cm=0, of=0, sd=0, ef=29
[EVAL] MIN cm=0, of=0, sd=0, ef=0
[EVAL] MAX cm=4, of=255, sd=255, ef=32
[EVAL] stb=0 stw=0
[EVAL] MIN stb=0 stw=0
[EVAL] NextID=6
[EVAL] Res 1
#

effort 29

#

i'm going to scream

hoary fjord
#

I don't think you need to worry so much about ram usage.
I've only got 2mb on the OVP and even with all the effects and buffers I got running, I've barely even cracked a full megabyte.

calm sundial
#

Yeah, I originally bought a 2MB esp32 S3

#

But looks like the AliExpress seller messed up and sent me an 8MB one

oblique knoll
#

Free upgrade

wary rock
#

Could this run on a LilyGo esp32 T-Display?

calm sundial
#

No

#

Needs a 240x240 display

calm sundial
#

Not much progress today aside of fixing two bugs, wanted to watch a movie tonight

warm bough
#

We look forward to better cooperation after you finish other things.😁

calm sundial
warm bough
#

嗯嗯,我忙完这阵后,我会给你邮寄设备🤝

calm sundial
#

time to resume working on nacapet, today i'm going to learn about custom lines

calm sundial
calm sundial
calm sundial
plush frost
#

Also 16 Mb

#

Just sayin’

plush frost
#

That’s the worst part

#

I also feel the “lack of creativity “ problem xD

#

What’s the structure you will use for that?

calm sundial
#

If it is, then I can maneuver

plush frost
calm sundial
#

What's the screen resolution? 240x240 too?

plush frost
#

Supports charging a lipo battery at 1Amp

plush frost
#

I use a 280x240 screen

calm sundial
#

Then it's not an impossible port

#

It should be easy

#

How much ram does it have tho?

plush frost
#

I can send you one if you wanna try it hehe

plush frost
calm sundial
calm sundial
plush frost
#

Thing is… I made it from scratch ahaha

calm sundial
#

Hmmm, we'll have to see about it, I was having pitfalls with the 512kb of RAM in the esp32

#

Maybe with the pico is different, or maybe there is a way to do it without relying too much on flash

plush frost
#

Supports long term 8kb feram for save data forever

calm sundial
#

I assume you use the RP2350 right?

#

Pico 2

plush frost
#

Would help me test the board if you tried stuff on it :3

#

HOWEVER

#

it has no wireless

#

Cause wireless is a bitch for certification

calm sundial
#

Wireless is no issue

#

I do plan on adding wireless, but behind define flags

#

So each individual unit can cherry pick the features they want

#

It also has support for accelerometer, also behind a feature flag

grand tinsel
#

:0

calm sundial
#

I'm going to change again the microcontroller for nacapet

#

this time i'm going to use a smaller microcontroller with native battery support

#

which i already have

calm sundial
#

it's yet another esp32s3

#

just with 2MB of PSRAM

calm sundial
#

Let's begin soldering it

#

Bought yet another screen

#

This time I got two

#

I'm gonna solder the buttons, battery, and the cables, leaving a slot for the display to sit in

calm sundial
#

I cooked

#

First revision of the nacapet

#

This is as small as I can get it

#

Without compromising on anything else

#

Screen is big, and is supposed to occupy the center, just that I added headers for easy debugging before installing the display

#

Battery functionality is also ready

#

Only thing I compromised on was the dock thing, but I think I can connect it to the speaker pin and every 5 seconds or so poll if it is near the dock

#

Its very compact

#

Vs dmx

calm sundial
#

For battery I'm thinking that 1500 will be enough

#

I wanna add a temperature sensor into it right now

#

But I have no more gpio

#

Anyway, the i2c bus should suffice

#

Tho I don't think I wanna make my digimon die out of heat stroke

#

I certainly will because is 3 in the morning and it's 26c

silk dagger
#

this is lookin pretty cool dude, cant wait to see what else you do

calm sundial
#

turns out i cannot debug in this reduced form factor

#

i wanted to add sleep capabilities to save on power and CDC will stop working due to sleep

#

so, to the breadboard we go back

#

sleep mode is working now

#

Now that this works, i wanna measure power consumption on battery

#

So for this, time to go back to the assembled version

calm sundial
#

let's make it count steps

calm sundial
#

It count steps, even in light sleep

#

It sleeps for 60 seconds, wakes for 10 seconds, evals vpet timers and then samples for steps

#

Does a simple rule of 3, and then goes to sleep

#

Screens are already going out of the origin country

shell birch
#

lmk if you need a shell design im more than willing to contribute

calm sundial
#

i'll let ya know, thanks

#

i'm working towards making a pcb, so people can make their own versions

#

now, i have developed a way to change backgrounds, tomorrow i'll make the settings screen

#

i'm also looking for help at making digimon rosters for this

#

i have one planned, but i need to figure out the evo care mistakes and such

#

I should also start working on battles, i dont have any sort of colliseum

#

And i need to test digivolution

hoary fjord
#

Making great progress bro! I love checking in and seeing how much you've done.

calm sundial
calm flaxBOT
#

Gave +1 Digi-rep to @hoary fjord (current: #256 - 8)

calm sundial
#

setting screen is already helping me improve development

#

since i can toggle settings on the fly

calm sundial
#

Custom backgrounds

#

Sadly i cannot have more than 5

#

Since each bg is like 115k, it eats storage quickly

#

Ill see about compression

#

I cannot wait to have the screen and make this portable

calm sundial
#

I think the next thing in line will have to be battles

#

I need the battles in order to keep progressing

#

This is the part I'm afraid the most

hoary fjord
#

Using 8 bit index colors can help drastically reduce the file size of 240x240 backgrounds. It's very rare that a background would need more than 256 unique colors.

#

You might even be able to reduce it down to a 4 bit index (2 colors per byte) and get them down to 1/4 size, with a little extra room for the palette.

calm sundial
#

I should try that, but I likes my high quality backgrounds

#

I'll make a palette system

calm sundial
#

i adjusted today the UI to use a better button layout

#

so, this means time to build rosters and battles

shell birch
#

ESP32-C6 1.3 Inch LCD Development Board 240x240 IPS Supports WiFi 6 Bluetooth 5 Zigbee 3.0/Thread Type C ST7789 SPI Module
https://a.aliexpress.com/_mNJKz3t
Would something like this work? It can take sdcards so potentially expandable storage its also 240x240 so its the same dimmensions you already been working on

#

Idk if maybe a differnt esp32 platform might help

calm sundial
#

it's designed for the esp32 S3, i would have to check

shell birch
#

ESP32 S3 Development Board 1.3 inch LCD Display Screen 240x240 QM18658 Sensor SD slot WiFi/BLE5.0 Mini TV For Arduino
https://a.aliexpress.com/_mMLGaLV

Theres also this one that has a jst connector for power and a gyroscope built in. Its based on the s3 and has the sd card slot

calm sundial
#

should work

#

it's actually better than my current unit

#

i'll port it to this unit accelerometer

#

it seems to have an acelerometer, but not the one i use

shell birch
#

Nice! I didnt know if you were willing to change boards since i know part of the project was to make a custom pcb. I wasnt sure if that was a goal for your thesis

calm sundial
#

a custom pcb kinda will be an end goal, but it will just act as a backbone

#

you won't have to spend more than 5 euros on it

#

since it'll just serve to connect the buttons and the screen

shell birch
#

If anything this frees up the foot print abit. You could shape the board to an adventure digivice design if you wanted

calm sundial
#

there was one person doing that

#

the good thing is that the code is open source, so you can adapt it to whatever micro you want

shell birch
#

Are you hosting the code anywhere like github? I have an s3 i havent been able to use

calm sundial
#

i might move away from github

shell birch
#

La leyenda

calm sundial
#

all you are missing are the UI sprites, i'll send the ones i'm using right now once i remove all the placeholders that use bandai images

oblique knoll
#

naca, tell me, why had i not think of hosting my own git server till you dropped that link in chat

calm sundial
#

i host everything under the sun in my infra

calm sundial
#

i do not use any middleman

#

i even have my own email server

oblique knoll
#

as youshould

calm sundial
#

and now that we are all here

#

let's discuss lines

#

i have this line i've been building but i have no idea about adding care requirements

#

so

#

one sec while i plug in the hard drive

shell birch
#

Random pie in the sky idea but if you use the internal flash as the main software and the sd card for different digimon eggs, kinda like the vital bracelet

calm sundial
#

my board cannot have sd card due to pinout

#

if i make another prototype iteration, i'll add sd card support

#

right now the internal flash allows for quite the roster, since each character is 6KB

#

all i do is take advantage of the internal ram and upscale on load

#

anyone wanna do the evo chart?

#

i cannot do everything myself

shell birch
calm sundial
#

xournal++ thing

calm sundial
#

which abstract the media used

#

i'll eventually buy that board to test and make another prototype, but not rn

shell birch
calm sundial
#

eh, i honestly don't know yet which ones to implement

#

since evo isn't complete, y'all free to add whatevery you want as the evo reqs

#

you have available a step counter and weight, care mistakes, hunger, strength, effort

#

it's like a vital bracelet but made a vpet

shell birch
#

Steps are interesting, how about having steps affect weight? Feeding can increase weight and steps lower it?

calm sundial
#

that's smart

#

reduce 1g every 250 steps

#

it counts steos rather fast

shell birch
#

I like it its def worth a try, how acurate is its step counting rn?

calm sundial
#

very good

#

a bit like the d-tector if you ever played with one

#

a bit faster than the VB

shell birch
calm sundial
#

it's also going to have an adventure mode on the sense like the vb has

#

but with all the characters and like another colliseum

shell birch
#

Alright and you gotta have care mistakes thats like a must for digimon

calm sundial
#

it has

#

it already counts them

oblique knoll
#

Will you be using dp?

calm sundial
#

yesss

#

and i will make it so it restores when you move

#

and here it is, the debug information

oblique knoll
#

And re- yeah, that

shell birch
#

Siiick alright then how about levels?

calm sundial
#

that idk how to do

#

i honestly like how the dmx does it, but i think i'll make them step centric too

shell birch
#

A simple exp chart should do, like the dmx. No reason to reinvent the wheel

calm sundial
#

in that case i'll double the experience gained in the adventure mode

#

or 1.5x it

shell birch
#

For now leave it on somekind of integer toggle for testing

fossil shaleBOT
#

@shell birch has leveled up! (5 ➜ 6)

oblique knoll
#

You can simplify the exp amount a bit, on the dmx every mon has 2 possible exp rewards, as either boss or not, and almost none have repeats

calm sundial
#

i'll see

#

now what i'm wondering is how to get started with the battle code

#

i don't know many statistics functions

#

i could do it like the sea digivices do it, and substract from hp

#

have two attack types with two damages

#

but i wanna see how should i do hits/miss

shell birch
#

Simplest way is apply modifiers based on type to the dp then compare

calm sundial
#

i know nothing about what ap/dp things mean

oblique knoll
#

The sea are fun with their battles, because the enemies use patterns of attacks, and depending on your shaking, you have 1 of 10 patterns you use

calm sundial
#

or bp

#

i know they exist

#

but i don't know how they work

shell birch
#

Generally the dp is just how strong they are, highest dp wins. But based on type as a modifier they gain or lose dp for that check

calm sundial
#

what should those modifiers be for example, and by how much without altering the entire power system

#

i know i added bp, ap and hp

#

ap i know is attack

#

bp and dp i think they are the same

#

hp is health

#

should be the ff ff ff

#

in that order

shell birch
#

Depends on the device and battle system but uhhh lets say opponent dp remains the same and you get the modifier. You have type advantage its a 1.5 modifier on your dp. If your at disadvantage its 0.5 modifier

#

Ever play dnd? You could use dp as armour clas to check if it hits then subtract ur ap from their hp

calm sundial
#

never played dnd

shell birch
#

Mega hits could do a 2x modifier

calm sundial
#

i barely played any fighting games in general

#

and i only know the current digimon systems because i can observe and process the data analyzed, but i actually have no idea about what goes under the hood

shell birch
#

Armour class in dnd is your defensive stat. You roll a 20 sided die to attack, then add any modifiers your character has to that. If it higher than your enemy's armour class, then your attack lands and you roll for damage.

calm sundial
#

oh i see, i was gonna go with a more mathematical strategy

#

roll a 64 sided dice, and then apply the modifiers based on the state of the character and then calculate the outcome

shell birch
#

Using dp can function in a similar way. Also can make items more engaging for item usage. But yeah leveling and training can change your dp ap and hp

calm sundial
#

items will be something i want to explore

#

since i would like to make it not very uninteresting

#

i also wanted to explore training like the digimon world games

#

so attack training, defense training, speed training

#

the device as it stands, supports multiple types of training

shell birch
#

Def look at digimon world and story for gameplay ideas

calm sundial
#

i have two of them implemented, but the mashing type will be removed, since it'll degrade buttons quicker

#

i was thinking a few training types such as the iC game where you have to focus on a portion that constantly becomes smaller

#

also thinking about the dmog ver 1 training

shell birch
#

Timed presses are always more engaging anyway like the log training and defense training

shell birch
calm sundial
#

yes

shell birch
#

Pesronally im not a huge fan of that one since its luck based. I would suggest something like tje flag mini game in the tamagotchi paradise. Your tama raises either or both flags and you have to quickly press the corresponding button

#

But it is a classic

shell birch
calm sundial
#

before i begin, let me make a backup of everything

shell birch
#

This was huge in the 80s

calm sundial
#

now we wait

#

still going

#

the entire project fits into a single disk

#

@shell birch if i implement dp and bp, it's redundant?

#

either bp or dp or both

#

i still don't know much about the diff between those two

shell birch
#

Theyre usually interchangable but sometimes bp is like a stamina stat determining how many attacks they can do

calm sundial
#

oh right

#

yeah, the BP would be the amount of stamina the characters before it cannot do any more attacks

shell birch
#

Exactly

#
#

Maybe it can help with the game design

#

Are you planning on being compatible with bandi devices?

calm sundial
#

no

#

it will work with nacabattle tho

shell birch
#

Okay then it should be able to be an original battle system right? We can kinda define ststs how ever we want

calm sundial
#

It'll be something that works using usb, and naca

shell birch
#

No metal prongs?

calm sundial
#

Since I'm expecting no one to have two of these units, I think I'll skip local connection

calm sundial
#

I don't have any more pins to do the connection

shell birch
#

Oh wait right cuz you wanted to do a street pass function. Would they be able to make an adhoc network with each other?

calm sundial
#

Should be able to

#

Just broadcast the battle data and nominate one as the master

shell birch
calm sundial
shell birch
#

I meant i cut it up yo make pins but you are right 🤔 🤔

shell birch
#

Have you researched how to do the street pass function?

calm sundial
#

ESP Now

calm sundial
calm sundial
#

headache, but i'm filled with determination to do this

#

see ya in a bit, today we are shutting down at 4 in the morning

shell birch
#

Good luck man

trail saddle
#

Here's my ESP32-S3 Analyzer project (WIP). It decodes a 320×320 PNG file from microSD card into SRAM and displays it on a 320×480 display.
P.S. If you're going to use a microSD card with the ESP32-S3, try SD_MMC.h. It's significantly faster than the standard SPI-based SD.h library.

hoary fjord
#

While that approach is probably the best for large storage. I personally prefer to keep the sprites in flash memory and skip having to copy them to PSRAM.

#

PNGs are 100% more versatile than raw image data though, that's for sure.

trail saddle
calm sundial
#

screens are in my country

#

finally

calm sundial
#

i could make use of the SPI bus in the screen, but i have no available CS line

#

actually, i don't have Pin 13 in use, so i could use it as CS

#

i'll just share the bus for the screen and the sd card

#

actually, this is going to be a bit more difficult than i thought, pin 13 would be MISO, so i'd need another way to do it

calm sundial
#

coming soon to a pick up point near me

calm sundial
#

Sometimes it does this and the NeoPixel turns on by itself

#

I don't even have the neopixel library

warm bough
#

Cool

calm sundial
#

i forgot to share, but yesterday i stayed up until 4 in the morning, and i have the first demo of the colliseum

#

Screen be saying "I'm tired boss"

#

I'm going to make also a shaking mini-game for the adventure mode quests and that should be it

#

i think i'm going to polish a few things in the status menu and stop for today

#

and return to uni work

calm sundial
#

i'm thinking about adding evolution items, such as digieggs

calm sundial
#

this is madness

#

50 digimon so far

#

54 actually

#

i won't add more

#

or maybe i will

#

now i have to create lines

hoary fjord
calm sundial
#

Ctt do be running already

calm sundial
#

screens arriving in an hour

#

time to prepare the soldering iron

calm sundial
#

redid partition table, now it should fit around 300-330 digimon without accounting for other things

#

also, using 50% of the app partition, i might be able to cut at least 300KB more out of the app partition for the spiffs

#

redid it a bit more, maximizing the data partition as much as i possibly can

#

away with the OTA

calm sundial
calm sundial
#

i'm going to play with the cpu frequency

#

trying to see if i can downclock it a bit

#

160mhz + light sleep after 30 seconds, it isn't even warm to the touch

hoary fjord
#

What kind of BMS are you using? or have you not got around to the battery side of things yet?

calm sundial
#

thing has battery + and - pins, and it appears to output 4.2v correctly, so it can charge the battery

hoary fjord
#

Ah yes, the one built into the esp32-s3 super mini?
I've never actually tried using the battery terminal on them yet, how's the charge time?

calm sundial
#

haven't tested

#

downside is that it doesn't appear to have a connection to the ADC

#

so i cannot tell the battery % right now

hoary fjord
#

I use those boards all the time in personal projects, never trusted the BMS. If you've had luck though I might give it a try.

calm sundial
#

i'll let y'all know

hoary fjord
#

Thanks bro 👍

calm sundial
#

after all, this is a prototype, i'll be testing with more hardware as time goes on

#

in theory, since i didn't remove the boost resistor, it should charge the battery at 100mAh

#

and it has a 1500mAh battery

#

god this is going to take half a century

calm sundial
#

god i just had a moment of realization

#

my way of creating lines is overcomplicated and i should have just used CSV files

silk dagger
#

You gotta love those forehead bonk moments

calm sundial
#

let's hope for the best

calm sundial
#

70 digimon loaded successfully and only one background

#

It crashed upon hatching

#

I'm starting to think that using this ESP32 super mini battery booster was not the best idea

#

It's been giving me weird problems

#

why did i set the hatch time to 5 minutes

#

this is pain

#

another crash

#

is it loading a file that doesn't exist?

#

oh

#

so now that i open the serial monitor you hatch

#

eh

#

you trying to troll me?

calm sundial
#

small late night bug fix, turns out during clock edit, i was resetting the periodic interrupt that handles the vpet tasks, and i didn't have to do that

#

if i resetthe interrupt, the vpet tasks won't advance

#

Added a compiler flag to enable/disable the bed

hoary fjord
#

Serial monitor can be really annoying when it comes to debugging, since it's a blocking task it can affect timing based crashes and essentially hide them. You best bet is to get actual serial debugging going and that way you can actually look at the stack and monitor specific variables during run time.

calm sundial
#

my digimon evo failed while i was sleeping

#

lol

oblique knoll
#

Hell yeah!

calm sundial
#

i added evo fail to a baby 1

oblique knoll
#

Madness. Love it

calm sundial
#

Let's take it for a walk

oblique knoll
#

Love that case

calm sundial
#

I dont like the battery booster in this thing

#

Im just noticing, i didn't implement effort

calm sundial
#

Finally

calm sundial
#

Actually screw dracmon, another day it'll be

calm sundial
#

time to work on the dex

calm sundial
#

ngl,i think i wanna have the ability to raise multiple charas simultaneously like the dm20 does

silk dagger
#

Thatd be cool

calm sundial
#

but not limit it to 2

#

rather, 4 charas at the same time

#

since the timers are very chill and long, i guess so people can go through evos quicker, they could raise up to 4 charas simultaneously

silk dagger
#

Like 4 active boppin around or 2 active 2 in cold storage?

calm sundial
#

4 active

silk dagger
#

Ooooo thatd be really really cool

calm sundial
#

currently i have a storage of 5 iirc

#

dex backend works

#

now i'll make a screen that is an egg selection and make it d-terminal esque to handle the dex

#

i'll do that tomorrow, or later, idk, i'm going to continue running this thing, since i'm starting to like it a lot

#

still cleaning some code, will push everything soon onto github

#

trying to make everything a bit more expandable

calm sundial
#

Day 2 of debugging, yesterday I found some bugs and fixed them