Problem:

I bought an economic 700W microwave oven, only after that I knew most people use 800W and the label on the food are also for 800W microwave oven. I pasted a paper table for conversion but it only fits xx min and 0 or 30s, which is not perfect.

Solution, possible:

in the kitchen, my hands could be cleaned to handle food, could be wet that harm my "waterproof" android phone. I wanna have a gadget that either wear on the wrist, or even clip on the chest. 

Bangle.js 2: The Open Smart Watch by Gordon Williams — Kickstarter

Bangle.js v2 smart watch, runs on espruino, programmable with javascript and waterproof, seems to be good.

One can try programming JS on it thru it's online emulator: emulator-IDE

or, you can even try play the watch with the bangle app loader(=store/market): apploader


Programming techniques needed:

 I myself was taught with various programming language since childhood, however the formal duration for each language do not exist 6months, and they are merely learning the syntax and routines, never real life application. However, recently chatgpt plus (GPT4) helped me to change that. And this time I am going to use it, together with the bangle.js v2 EMULATOR to try solve the problem.


Things to prepare are as listed.


How this project worked:

DAY 1 of 3

A. Testing

print hello world, if this didn't work then everything is day dreaming

I asked GPT to try print a hello world:

ps: the "S" is me, the chatgpt logo = gpt4

at first didn't work, gpt4 claims may be the module "graphics" is not available.

anyway then gpt4 suggested something, i simply paste into the web IDE from espruino, and finally it worked with this code:

with this outcome: 


B. Start the real work

Then, simply ask what you want:

It gave some code, but in the summary given by gpt4, it shows BTN1-5, thus run with error. And I knew that gpt4 didn't know bangle.js v2 have only 1 button. I reminded it. 

The next block of code also sucks, because screen resolution is smaller for BJ v2, so have to inform gpt4. so gpt4 used smaller fonts: 


Then it gave a code, which showed a backbone to modify.

However, it's strange that it functions by pressing the button, and add 10s to the "Enter time". 

C. report to gpt4 that what is not working, and ask it to re-do/re-evaulate again

Not working, then I asked gpt4 to modify again. 

It gave some code i didn't run. i pushed it to use scroll to let user select time.

And let users choose minutes 0-15 (latest version 0-99), and then seconds (0-59)

During this, there is a LOW_MEMORY, MEMORY error; gpt4 claims that this device's ram is much less than usual desktop, so cant declare everything and better follow his way.... okay.


D. partial product

main screen: 


press button to choose minutes:

after tap on say the 1m, you will choose the seconds:

then result is shown:

Day 2 of 3

A. Ask gpt4 to re-analyze the script itself

In day 2 of the development, i just type the script back to gpt4, it will analyze the script itself:

so far, the From/To is hard coded in the script, i wanna ask gpt4 to let user choose between 700/800W by button, but failed several times.

For the last time, I clarify to gpt4 again what I need.


Day 3 of 3

A. re-analyze by gpt4 itself

In day 3, i restarted the process by feeding the script into it.

1. Ask it to refine worked

But finally, may be by chance or may be due to a new session, i simply ask gpt4 to refine the code, and it worked:

now the button, when short press, will let user choose time, when long press, will choose which direction of conversion:

2. simple human input, polishing

Finally, my programming ability kicks in.

I added some empty lines to make the GUI more clear to read. 

Asked gpt4 to make seconds into x min y sec, and added a line for the description of the use of the button.

3. finally, main screen:

long press to choose the direction:

short press to use scroll to choose minutes and seconds as before:

After choosing the time, or the direction, the result is automatically calculated.


B. some thoughts

1. I dont even think up the formula

Btw, the formula of conversion is given by gpt4 itself, i just read the code and i think the formula is correct.

2. no need actual coding most of the time, just sometimes manual edit is faster

3. however the "programmer" is better equipped with programming concepts. 

Some extra story:

My thoughts of FOSS smart watch of cause drop on cheaper ones first. Although some cheaper ones are available, they only function either as "a watch but no end user programming" or "user programable but not a good watch". Bangle.js v2 would be my sole hope now.

Ext-reference:

the final code is dual licensed here at :

https://github.com/ccchan234/bangle-js-mw-timing/blob/main/v004

it's open sourced for GPL3,

and i would like to have it also licensed in commercial license if possible.

ADD 01:

I have saved that 3 days' chat and uploaded at the github,
if you are interested, you could read the day-xxx.md files.
They can be viewed inside github directly.
e.g. https://github.com/ccchan234/bangle-js-m­w-timing/blob/main/day1.md