
Ask HN: Need your help to figure out how to make money out of my project. - justavm
Hi All,<p>I wrote a Dakvik VM from scratch in C with the following major features below, need your help to find my next steps.<p>* &gt;1M instructions on STM32 based BluePill board(&lt;$3).
* Precise compacting GC.
* Interrupt support.
* Native C interface generator.
* Platform abstraction layer for HW peripherals.
* Arrays, Float, Switch, Exception, Interface, Multiple inheritance, dynamic and etc.
* Believe or not RXJava lie programming is possible, sort of :).<p>Features not available on master branch;
* MultiThreading (Developed a simple preemptive rtos for cortex m but not integrated yet.)
* Shared Library support. (Working on a bare metal project for Cortex M series.)<p>QUESTIONS
 As a freelancer&#x2F;remote engineer I want to make money out of this.
* From your experience what are my options?
* What do you think is the best way to generate money out of this project?
* Open Source(which license) or proprietary license?
* What do you think about doing a Kickstarter project in this Covid19 days?
* Creating a Udemy course? How I can protect ownership of the code? Can I survive with it as a family?
* Selling it to a company?
* Landing to a remote job around this tech? 
* Any idea how Oracle vs Google lawsuit will end, Do you think my customers will need to pay to Oracle or Google?
* Can I find support&#x2F;funding to bring Kotlin or Groovy like language to embedded world with no java involved rather than compiler it self written in Java.
* What you would love to have as a way of programming for small devices?<p>The only thing i know for sure is make it free for makers&#x2F;hobbyist.
I am familiar with other solutions out there from different VMs to languages especially the low hanging ones but would love to hear in depth information.<p>Best Regards
======
justavm
Below is the sample code and the apis;

package demo; import eapi.*;

public class App {

    
    
        public static void main(String args[]) {
    
            final Led led = Led.init('C', 13); // Port C Pin 13
            PushButton pushButton = PushButton.init('A',
                                                    8, //Port A Pin 8
                                                    GPIO.INPUT_PULL_UP,
                                                    GPIO.FALLING_EDGE,
                                                    200, //debounce
                                                    (time) -> {
                Core.println("push button event");
                led.flip();
            });
    
            while (true) {
                Looper.loop();
            }

}

Analog.inSetup(Analog.IN1); Analog.read(Analog.IN1);

Analog.outSetup(Analog.OUT5); Analog.write(Analog.OUT5, (short)255);

I2C.setup(I2C.I2C2, 400); SPI.setup(SPI.SPI_ID2, 0, SPI.SPI_MODE_3,
SPI.SPI_FB_MSB);

References: [https://stm32-base.org/boards/STM32F103C8T6-Blue-
Pill.html](https://stm32-base.org/boards/STM32F103C8T6-Blue-Pill.html)

------
justavm
Any feedback is appreciated!

