Coder Social home page Coder Social logo

microwave's Introduction

BL602 Based Microwave Retrofit Controller

This is a project that aims to make a powerful open source framework for converting your existing kitchen appliances in to internet connected smart appliances using the low-cost BL602 microcontroller. this offers several benefits over buying a commercial smart appliance. you have full control over the hardware and code being used, it doesn't rely on any servers, or if it does you're the one hosting it, and it doesn't phone home to sell user data.

This project aims only to create the hardware and software to run the appliance and provide a backend for controlling it. if you want a fancy graphical frontend for it or anything like that feel free to make one yourself.

the software and hardware contained in this project should be considered to be in a very early alpha state. the hardware hasn't even been designed yet and the code is still barely just a proof-of-concept at this point. progress will likely be slow so feel free to contribute if you want things done. I'm an amature embedded programmer and this chip isn't too well documented, so it takes a good bit of time to figure out how to impleent things.

This software and hardware is being released as public domain. feel free to use it however you like, though it would be preferred if you credit me in anything you make using it, and it would be nice if you contribute any improveents you make.

Planned Hardware

Display: 128x128 SSD1327 OLED panel
Buttons: 8x8 matrixed keypad, possibly with dedicated controller to save pins and cpu cycles
MCU: BL602 or BL604 if more pins are needed
Sensors: IR thermometer, ambient temperature and humidity with either a DHT11 or BME280
Switching: Current plan is to just use mechanial relays, might change to solid state later on down the line.
Memory: external flash chip housing cooking mode database and any LVGL assets that can't be fit in to the bl602's internal flash, if the extra space is needed.
Hardware designs have not yet been created, this will be done when the backend is a bit more complete.

Building a "devkit"

the hardware I am currently using to work on this project is rather simple. it is a cheap 4-channel relay board connected to all of the components in the microwave that is powered and controlled by a Pine64 PineCone bl602 EVB.
The current software expects 4 components: a light, a turntable, a fan, and a magnetron.
The way to hook it up is to remove the existing control board from the appliance and then cut the power wires for each part, and then connect them to a relay on the relay board. the pin layout I chose is as follows:

Light: GPIO 2
Turntable: GPIO 11
Fan: GPIO 12
Magnetron: GPIO 5

these pins were chosen based on how they react during startup to avoid having the magnetron get pulsed unintentionally. the pin layout may change in the future.

How To Build

linux

requirements: bl_iot_sdk

  1. run the command export BL60X_SDK_PATH path/to/sdk
  2. run make (if it errors out but microwave.bin is in build_out just pretend it didn't error)
  3. flash it to the bl602 using your flashing utility of choice

windows

lol idk

TODO:

Backend:

  • Rewrite to remove all aos functions from project, ideally bringing it down to just using the low-level drivers directly
  • implement wifi connectivity
  • implement SSH and Telnet access to the cli
  • implement sensors and sensor cooking modes
  • implement cooking mode database and loader

Frontend:

  • implement display driver
  • implement keypad driver
  • set up LVGL
  • design entire UI

Other:

  • name project
  • rewrite sections of the source code that were ripped from the bl_iot_sdk demos
  • ensure code is modular enough to be ported over to other appliances without too much work

microwave's People

Contributors

martijnbraam avatar thanos-the-tank-engine avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

martijnbraam

microwave's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.