Welcome to the Website of Sadale (jan Sate)!

This website is a personal blog that mainly showcases the stuffs that I make. I started off with game development. Now that I mainly make electronics.

Unlike those filthy hustling normies, outside my day job, I make niche stuffs that I actually enjoy working on. Profit-making is not, and will never be the primary objective of Sadale. I'm an isolationist that has a unique set of ideology, which I don't intend to spread because I'm pretty much a mind-my-own-business person. The meatspace I'm living in shares no cultural value with me whatsoever. To everyone interacting with me outside my day job, please kindly refrain from imposing unwelcomed ideology on me outside my professional context. Thank you for your understanding. Meanwhile, I do not object to anyone endorsing a kind of culture that's different from mine. As long as it isn't enforced upon me, it isn't my problem. :P

Now then, let's checkout what I've made in the list below! Have fun! :)

Showcase - Electronics

Showcase - Games

Showcase - Music

Showcase - Misc

Current Project

Donate with PayPal button If you'd like to support this website and the products that I'm developing, please consider making donation using this button. Thanks! :)

nimi mute kepeken toki pona

jan Sate - ona li pali e musi pi ilo sona e kalama musi e ijo ante!

kama pona! ni li lipu pi jan Sate. tenpo pini la jan Sate li pali e musi pi ilo sona. tenpo ni la jan Sate li pali e ali.

pali pi jan Sate li lon sewi pi lipu ni kepeken toki Inli.

lipu ni li jo e nimi mute pi pali pi jan Sate. ona mute li lon kepeken toki Inli. taso lipu ni li jo e ona lili pi toki pona. sina wile lukin e nimi mute lon toki pona la o pilin e nena ni!

jan Sate li pali tan musi tan mani ala. nasin mani li ike mute tawa jan Sate. nasin mani o moli!

Recent Blogposts

Toy Motor Controller Update: PCB Revision, Menu, Bootloader and Memory Card Support

March 31, 2024, 5:35 a.m. Electronics ilo lawa nasa

It's been more than a year since I've posted any update of this project on this blog. If you know me personally, you should probably have heard that this project has been on-going because I do talk about this project online from time to time. It just happened that I've been too busy to update this blog. Now that I've finally got the time to document the latest progress over these months, as well as the planned future development of this project.

Hardware Revision 3

Photo of Toy Motor Controller Hardware Revision 3

I've revised the hardware. The new hardware update includes:

  • Upgraded microcontroller: STM32G070CBT6. It has more flash and RAM and IOs ports, which allows the end-user to have more space to implement the custom functions
  • Added an external memory card slot
  • Added an extra button
  • New DC-DC regulator. It's a buck-boost converter supporting input voltage range of 1.9V ~ 5.5V
  • Removed built-in pressure sensor
  • Upgraded the 1-pin analog port to a 3-pin GPIO port
    • This GPIO port can support the pressure sensor / analog sensor on an external board
  • Replaced the 3D printed knob cap with an off-the-shelf one. My consumer grade 3D printer simply isn't good enough for printing that

A further revision is pending, which mainly focus on fixing hardware bugs and optimizing the design for small scale production. The pending revision doesn't change the feature set above.

Firmware Development

I've split the firmware into two parts, the bootloader and the app. The bootloader is used for performing firmware upgrade for the app. The app is where pretty much everything happens. The idea is to let the user develop their own custom app to be loaded into this toy motor controller.

The app upgrade file format is a dumb .BIN file. Basically it's just a binary stream to be self-flashed to the app region of the flash. The bootloader would flash as many pages as the size of the .BIN file. The development of the bootloader has just been completed.

The app development is still on-going. The user interface prototype is done with working menu and display. The UART protocol is also working. However, it's currently pretty difficult to develop plugin for this toy motor controller so I need to find a way to make it easier to perform plugin development. I foresee that I'd need to change quite a bit of the codebase for that.

On the app driver side, it's done and tested working except for the external memory card part. However, the existing code that initialize the peripheral is very inefficient (thanks to the auto-generated code of STM32CubeMX). I plan to make it more efficient somehow.

As for external memory card support for the app, I need to implement that. I'm mainly interested in data logging, config import/export and firmware dumping.

Production Plan

I found that it's too much work to manually solder the units for small scale production, especially for SMD soldering, I need to wear the gloves, take out the equipment and material, do the job and perform clean up, which's rather time-consuming. Therefore, I've decided that manual SMD soldering is to be done on only a unit or two for prototyping purpose. After the prototype is verified to work correctly, I'll at least outsource the SMD soldering for small scale production. For the parts with larger pitch, I could still solder that on my own if it isn't economical to outsource in small volume.

In the next revision, I'm gonna put all SMD parts on one side, and parts that can be hand-soldered on the other side.

Roadmap

As this is a hobbyist project, making profit is not and will never be the primary objective, just like other electronic projects that I work on. (To whoever proposing commercializing this project, particularly a certain close internet friend of mine coming from CIS, fuck you! As if I'd want to keep hustling off the clock! :P)

The main objective of this project is for me to learn and to share the tech that might be useful for others. There's no solid release schedule for this project. Tentatively I hope that I can get the first batch out by the end of this year, probably in a scale of <20 units. I'll make another blogpost of this project again when the time comes.

If I can complete this project, the firmware will be released under an FOSS license.


Toy Motor Controller Update: Mechanical Case and New Revision

July 31, 2022, 5:55 a.m. Electronics ilo lawa nasa

So, I've been working on the Toy Motor Controller. Over the past weeks, I have designed the mechanical case, revised the PCB and worked on the firmware. This device is still a work-in-progress.

Mechanical Case

The mechanical case consists of front cover, back cover, a couple of knob caps, a button and a power slider switch. The battery tray is affixed to the back of the top cover using a couple of screws via a couple of screw holes that comes with the tray.

It's the first mechanical case that I've ever designed in my life. I'm glad that it's working. And I'm happy that I can finally put the 3D printer that I've got into good use. :D

Here is some photo showing the mechanical case of the second revision of PCB:

Photos showing the front view, side view and back view of Toy Motor Controller

Second Revision of PCB

I have revised the PCB design. Compared with previous revision, now that it has the following feature:

  • More compact
  • Wider input voltage range. Previous revision: 1.85-5.5V. Current revision: 1.4-5.5V
  • Dual motor output port. Previously it only had one output port.

After spending hours of time, I have assembled a unit of this revision of PCB. I found that it does have minor issues, including a couple of capacitor footprints are having the size that's slightly off, and some silk mark issues. But they aren't anything critical so I can get away without fixing them for now. :P

Here's a photo showing the difference between the previous revision and the current revision:

Photos showing the front view, side view and back view of Toy Motor Controller

Firmware Development Updates

As for the firmware development, the driver code is mostly completed. Now that it's time for me to implement the actual feature on top of the driver code that I've written.

I've also tested the hardware using the driver code. At this stage, there's no evidence of existence of major defect in electronic design.

Production

With the current development status, both the mechanical and electronic design seems to be working fine. I believe that I can go ahead and assemble 4-5 units of this device.

Due to the minimal ordering quantity of the PCB, I've got a few extra PCBs. I'm gonna find a time to purchase the components and solder them onto the extra PCBs.

This time over, I'm gonna purchase solder paste stencils as well. It took me hours to fix issues associated with putting incorrect amount of paste in my previously assembled units. I'd rather to spend an extra few dollars on getting stencils so that I can apply the exact amount of paste needed to avoid running into this problem again.

I don't think that this device would have any good amount of demand. I'll be using this 4-5 units to evaluate the demand and see if I should outsource the assembly or if I should continue to do the assembly on my own. I've done the math. Apparently it's well worth the cost outsourcing the assembly if the demand is >20 units per batch.

That's it!

That's it for the update on this project. I'll update you guys whenever there's any news. See you soon! :)


New Project: Toy Motor Controller

June 5, 2022, 2:33 p.m. Electronics ilo lawa nasa

Hello guys! I haven't been blogging about the projects that I've been working on for quite a while.

Here's new a project that I have been working on for a bit longer than a month. It's a toy motor controller.

Photo of Toy Motor Controller

Application

This Toy Motor Controller is designed to be used for modifying existing motorized toys so that they'd be more fun to play with. For example, the motor of fishing game toy or penguin dash toy can be attached to this toy motor controller so that their motor can run at different motor speed, optionally with randomized movement pattern. It also supports reading external sensors so that the end-user can develop their own firmware to control the motor based on the sensor readings.

Feature

  • Microcontroller: STM32G030F6P6
  • Power input: AAx2 battery or DC Jack w/ power switch
  • Dual encoders with push button
  • A dedicated push button
  • Dual 3-digit seven segment LEDs
  • LED stripe display composed of 15x 0603 LEDs
  • Motor driving port - Can be used for driving any motor that meets the voltage and current requirement
  • External analog sensor port
  • Air pressure sensor
  • Motor current sensor for feedback control
  • UART port mainly for interfacing with computer
  • SWD debug port

Completed Task Items

  • First revision of hardware design
  • Assembly of the first prototype unit, which's mostly working
  • Test firmware for testing the hardware design

Task Items to be Worked on

  • Mechanical case - to be printed using 3D printer
  • Revision of hardware design for fixing the following issues:
    • Removal of known useless hardware feature that I've added to the first revision of PCB just in case
    • Mitigating voltage regulator transient output voltage drop upon the motor starts
    • Perhaps adding an additional motor driving port
  • The actual firmware. Currently we've only got the test firmware working, which isn't good for anything other than testing hardware feature
  • Production and distribution

Expected Production Volume

Based on my previous experience with the demand of my products, the expected demand for this project for its life time would be 10-50 units. I'll try to optimize the design for small volume production, including looking for parts that can be ordered in small volume, designing it in a way that I wouldn't have to spend too much time doing assembly even if I have to do it on my own, etc.

Future of Sadale.net

I kind of feel bad of starting a new project before completing the previous ones. It isn't uncommon for hobbyist projects tho. At least the completion rate of my projects is still higher than most fellow hobbyists.

After this project, I think I'll revamp my website for a little bit to make it less formal and more personal. Then I'll try getting back to my previous projects that I haven't finish (the clock and the portable game console).


Toki Pona has Gained ISO 639-3 Language Code!

Jan. 28, 2022, 2:38 p.m. Toki Pona

Congratulation on Toki Pona language for successfully applying for the "tok" ISO 639-3 language code!

Toki Pona is a minimalist constructed language invented by "jan Sonja" back in 2001. The first official book describing the language, Pu, was published at 2014. Unlike most other constructed languages, Toki Pona has less than 130 words. Due to the simplicity of the language, it attracted lazy people like me who don't want to invest too much time into learning a language. Personally I've learned it in 2018. And the speaker of language has been growing steadily. As of today, Toki Pona is the second most spoken constructed language in the world, only after Esperanto, with the amount of speakers estimated to be about 300-1000 and counting...

Since Toki Pona language were invented, three ISO 639-3 Language Code applications were made, including at 2007, at 2017 and at 2021. With the 2007 and the 2017 request failed, Toki Pona had finally made it in 2021 and gained the "tok" language code.

I have learned Toki Pona in 2018 and have been using it since then. The one thing I've learned from Toki Pona is that, context is everything when it comes to communication, and it ain't a good idea to always take words at face value. It enabled me to talk with others more efficiently. I've also made quite a few friends speaking Toki Pona along the way. In addition, since I've learned the language, I've developed a hardware device and a game that feature the language. I've also joined Toki Pona Day 2021 showcasing another DIY Toki Pona counting device. As of this moment, yet another Toki Pona related hardware device is under development that's to be released some time in this year.

Last year I was invited to join the "Toki Pona ISO 639-3 working group". I wasn't quite active there. Right before the deadline of the application in 2021, the main applicant called for filling in the form collaboratively. I'm very glad to have involved in assisting in doing write-up of the missing parts required for application of the code along with other people in the working group. After that, the members of the Discord group "ma pona pi toki pona" were contacted and they helped editing the existing content into perfection. Just earlier today, it was officially announced by ISO 639-3 that the application was successful.

The success of this application is significant. It means that toki pona have a standard language code that can be used for localization of programs. Without a code, each program and website would have to come up with a custom code for toki pona language, assuming that it's even supported by the site in the first place. With a standard language code, it makes localization much easier. Believe it or not! Websites like Wikipedia only allows adding new languages that has an ISO language code. The lack of language code of Toki Pona had been a limiting factor of the growth of the language. With the new language code, I hope that Toki Pona language will continue to thrive!

If you haven't learned the language yet, do take a look at it! Here's a nice free online course for learning it:

o kama sona e toki pona! ona li musi a! (Translation: Go learn Toki Pona! It's fun!)


Toki Pona Day 2021 (suno pi toki pona 2021) Has just Ended! What a Party!

Aug. 8, 2021, 2:20 p.m. Exhibition Product Release ilo nanpa

Logo of Toki Pona Day 2021

Toki Pona is a constructed language invented by jan Sonja that has hundreds of speakers around the world. Today marks the 20th Anniversary of Toki Pona language. In celebration of the birthday of the language, the ma pona pi toki pona community had organized Toki Pona Day 2021.

As a toki pona speaker, I'm very glad to be taking part in the event as a performer, as one of the sponsors and as a participant!

As a Performer - Release of ilo nanpa lili

A month ago, I was contacted by "kala Tonyu" that I was requested to perform in "suno pi toki pona 2021" for the toki pona content that I've contributed to the internet, including ilo nanpa and the pipi song.

After some thoughts, I decided to make a sequel of the toki pona calculator, ilo nanpa lili. It's a simplified ilo nanpa that you can build on your own. It's a CD4017B-based counting device that can be built on breadboard. So I've made an assembly video, assembly instruction manual, BOM and website for the device for the event. Unlike ilo nanpa, this ilo nanpa lili is sold as a kit that the end-user would have to assemble it on their own. And it'll be sold at cost price.

The assembly video was premiered on Youtube during the event. Here's the video:


And here's the website of ilo nanpa lili that contains the BOM and shipment arrangement, so that everyone could get the kit or source the components on their own to build ilo nanpa lili.

As a Sponsor - Surprise Lucky Draw

In addition of being a performer, I was contacted by the event organizer for a request of sponsoring a unit of ilo nanpa for the event, which I gladly accepted.

In the same lucky draw, it also contained 3 units of the official toki pona book, which's known as "pu", as well as 3 units of the official toki pona dictionary, which's known as "ku". The sponsors of these items are anonymous, so I've no idea on who donated them.

Anyway, the winner of ilo nanpa in this lucky draw is jan Seno. Congratulations! I look forward to packing and sending the free unit of ilo nanpa to you!

As a Participant - The First Online Party that I've ever Participated in!

Here comes to the most important part. In addition of being a performer and a sponsor, I'm a participant of this event as well!

This event was mainly held in the ma pona pi toki pona community, which's a community resides in stupid Discord. Despite that I don't quite like Discord, I still had to join the event, so I had no choice and joined their server. :(

Unlike the toki pona communities that I've joined, this Discord community is unique in its own way. Unlike IRC and Telegram, it supports live streaming of computer screen or phone camera right inside a voicechat. This feature was heavily utilized throughout the event. In fact, this feature enabled the performances to stream the content of their screen easily for the purpose of their performance.

Apparently, the community has stricter rules compared with other toki pona communities outside as well. I've heard rumors about unjustified banning inside the community, which I couldn't confirm, but I suspect that it's true. So I acted rather cautiously inside the community for avoid breaking any of the rules during the event.

The event was also being mirrored to Youtube and Twitch. However, the viewers there seems to be treated as second-class citizens as most of the things going on were happened in Discord. Plus, there were technical issues with the mirroring in times.

Enough talking about the Discord community. Now let's talk about the content of the event.

The event's packed with performances during the 24 hours, with a few breaks. Various performances, including games, story-telling, workshops, musical performance, were available. Some of the performances were repeated for a few times during the event so that people from different timezones would be able join. In addition, there're background games going on during the entire event. The participants were asked to fill in an attendance form, which was used for the surprise lucky draw.

There're a few musical performances during the event. I've listened to music from kala pona, jan Pensa and jan Usawi. I absolutely love the song "tawa lon linja" from jan Usawi for its catchy melody!

Spamming seems to be a part of the culture of the community. While jan Pensa was singing a song, one of them contained the lyrics "mu mu mu mu mu". Then the users kept spamming "mu mu mu mu mu mu mu mu mu mu" inside the event's channel:

Spamming of mu mu mu mu mu

In addition, when music's being played, I've seen people collectively posting the cat music gif repeatedly. And I've seen other kind of spamming from other occasions. Nevertheless it's fun to look at those spams. And it's even more fun to participate in it. :P

I've played three games during the event, including Gartic Phone, sketchful.io and Classicube. The rule of Gartic Phone is that a player would write a sentence in toki pona, then someone else would draw an image based on the sentence, then someone else would write another toki pona sentence based on the image. This process keeps repeating. In the end, the sentence would be completely different from the original one. Unfortunately, a few of the players couldn't speak toki pona well (notice how "jan li tawa wawa" get turned into "jan li kama wawa". In English, that'd be "a person runs" get turned into "a person becomes strong"). The less-fluent speakers made some extra content get lost in translation.

Album of Gartic Phone

For sketchful.io, it's like post-it draw-it. But the host had loaded a custom word list that only contained toki pona words. It happened right before the closing session of the event. At first, around 20-30 players had joined the game. People began leaving before the game ended because it got overrun for a bit. At the end of the game, there were only like 8 to 10 players. With all those people leaving, I managed to win the game! :P

As for Classicube, it's a game similar to Minecraft Classic. It's one of the background events that the participants could join anytime during the event.

I'm impressed that the community had built a rather decent toki pona world during the 24 hours of the event:

A screenshot of Classicube

Too bad! I felt super dizzy after playing this game for a while. So I couldn't play it for long. :(

In the closing session of the event, it's all those thanks for joining and stuffs. And there was a lucky draw as well. In the very end of the event, it was a countdown of the 20th birthday of toki pona. They counted from "mute", "mute", "mute", "mute", "mute" to "tu" "wan" "ala!". In English, that'd be "many, many, many, many, two, one, zero!". We said "many" because in the simple toki pona numeral system, all numbers more than 3 are called "mute". After the countdown, we sang happy birthday in toki pona. During the end of the event, people kept spamming in the event's channel to the extent that the moderators had to enable slow mode of Discord for the channel to slow down the spam.

That's it for the event. I'm very glad to have joined it. See you next year! :D