Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • flow3r/flow3r-firmware
  • Vespasian/flow3r-firmware
  • alxndr42/flow3r-firmware
  • pl/flow3r-firmware
  • Kari/flow3r-firmware
  • raimue/flow3r-firmware
  • grandchild/flow3r-firmware
  • mu5tach3/flow3r-firmware
  • Nervengift/flow3r-firmware
  • arachnist/flow3r-firmware
  • TheNewCivilian/flow3r-firmware
  • alibi/flow3r-firmware
  • manuel_v/flow3r-firmware
  • xeniter/flow3r-firmware
  • maxbachmann/flow3r-firmware
  • yGifoom/flow3r-firmware
  • istobic/flow3r-firmware
  • EiNSTeiN_/flow3r-firmware
  • gnudalf/flow3r-firmware
  • 999eagle/flow3r-firmware
  • toerb/flow3r-firmware
  • pandark/flow3r-firmware
  • teal/flow3r-firmware
  • x42/flow3r-firmware
  • alufers/flow3r-firmware
  • dos/flow3r-firmware
  • yrlf/flow3r-firmware
  • LuKaRo/flow3r-firmware
  • ThomasElRubio/flow3r-firmware
  • ai/flow3r-firmware
  • T_X/flow3r-firmware
  • highTower/flow3r-firmware
  • beanieboi/flow3r-firmware
  • Woazboat/flow3r-firmware
  • gooniesbro/flow3r-firmware
  • marvino/flow3r-firmware
  • kressnerd/flow3r-firmware
  • quazgar/flow3r-firmware
  • aoid/flow3r-firmware
  • jkj/flow3r-firmware
  • naomi/flow3r-firmware
41 results
Show changes
Commits on Source (10)
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
## [Unreleased]
### Added
- Added _Comic Mono_ font.
- Added a setting for automatically connecting to Camp WiFi.
- Added `ApplicationContext.bundle_path` so apps can find out what directory
they live in. This should be used for loading app assets from the correct
path.
- Added TLS support for MicroPython.
- Added modules for `.tar.gz` extraction.
- Added `aioble` module (Bluetooth Low Energy).
- Added pronoun support in the Nick app.
- Added color options in the Nick app.
- Added IMU-based rotation in the Nick app.
### Changed
- `ctx.get_font_name()` now raises an exception for unknown fonts.
- Raised umber of concurrent textures to 32.
### Fixed
- Fixed PNG without alpha and JPEG support by enabling `CTX_FORMAT_RGB8`.
- Fixed image cache eviction by introducing a ctx frameclock.
- Fixed incorrect merging of settings dicts in `st3m.settings`.
## [1.0.0] - 2023-08-13
Initial Release
[unreleased]: https://git.flow3r.garden/flow3r/flow3r-firmware/-/compare/v1.0.0...main
[1.0.0]: https://git.flow3r.garden/flow3r/flow3r-firmware/-/tags/v1.0.0
......@@ -145,16 +145,6 @@ void st3m_gfx_splash(const char *c);
// Called by st3m_usb_cdc when it has the opportunity to send some data to the
// host.
size_t st3m_console_cdc_on_txpoll(uint8_t *buffer, size_t bufsize) {
// I have no idea why this is needed, but it is. Otherwise a large backlog
// of data cuases the IN endpoint to get stuck.
//
// I've spend three days debugging this.
//
// No, I'm not fine. Thanks for asking, though. I appreciate it.
if (bufsize > 0) {
bufsize -= 1;
}
int64_t now = esp_timer_get_time();
xSemaphoreTake(_state.mu, portMAX_DELAY);
......@@ -400,4 +390,4 @@ static esp_vfs_t _vfs = {
.open = &_console_open,
.read = &_console_read,
.write = &_console_write,
};
\ No newline at end of file
};
......@@ -46,6 +46,7 @@ void st3m_usb_cdc_txpoll(void) {
for (;;) {
uint32_t space = tud_cdc_n_write_available(st3m_usb_interface_app_cdc);
if (space == 0) {
tud_cdc_n_write_flush(st3m_usb_interface_app_cdc);
return;
}
......
......@@ -5,4 +5,5 @@
esp-llvm = super.callPackage ./esp-llvm.nix {};
esp-gdb = super.callPackage ./esp-gdb.nix {};
run-clang-tidy = super.callPackage ./run-clang-tidy {};
mpremote = super.python310Packages.callPackage ./mpremote {};
})
{ python3
, fetchPypi
}:
python3.pkgs.buildPythonApplication rec {
pname = "mpremote";
version = "1.20.0";
format = "pyproject";
src = fetchPypi {
inherit pname version;
hash = "sha256-XDQnYqBHkTCd1JvOY8cKB1qnxUixwAdiYrlvnMw5jKI=";
};
doCheck = false;
nativeBuildInputs = with python3.pkgs; [
hatchling
hatch-requirements-txt
hatch-vcs
];
propagatedBuildInputs = with python3.pkgs; [
pyserial
importlib-metadata
];
}
......@@ -35,5 +35,6 @@ in with nixpkgs; rec {
emscripten
ncurses5
esp-gdb
mpremote
];
}
......@@ -5,7 +5,7 @@ These are the sources for the Python part of st3m, which implements the core fun
You're either seeing this in our git repository (in `python_payload`) or on a badge itself (in `/flash/sys`).
On the badge, these files are required for the badge to function, and are extracted on first startup. You can edit these to your heart's conent, but this generally shouldn't be necessary.
On the badge, these files are required for the badge to function, and are extracted on first startup. You can edit these to your heart's content, but this generally shouldn't be necessary.
If you break something, the badge will probably not boot. In this case, start it in recovery mode and remove the `sys` directory fully. This will cause the badge to re-extract the files on next startup.
......
......@@ -26,19 +26,17 @@ class HarmonicApp(Application):
self.color_intensity = 0.0
self.chord_index = 0
self.chord: List[int] = []
self.synths = [blm.new(bl00mbox.patches.tinysynth_fm) for i in range(5)]
self.synths = [blm.new(bl00mbox.patches.tinysynth) for i in range(5)]
self.cp_prev = captouch.read()
for i, synth in enumerate(self.synths):
synth.signals.decay = 500
synth.signals.waveform = -32767
synth.signals.waveform = 0
synth.signals.attack = 50
synth.signals.volume = 0.3 * 32767
synth.signals.sustain = 0.9 * 32767
synth.signals.release = 800
synth.signals.fm_waveform = -32767
synth.signals.output = blm.mixer
# synth.fm = 1.5
self._set_chord(3)
self.prev_captouch = [0] * 10
......
......@@ -10,7 +10,7 @@ from st3m.ui.view import ViewManager
from ctx import Context
octave = 0
synths: List[bl00mbox.patches.tinysynth_fm] = []
synths: List[bl00mbox.patches.tinysynth] = []
scale = [0, 2, 4, 5, 7, 9, 11]
......@@ -79,7 +79,7 @@ def run(input: InputController) -> None:
def init() -> None:
global synths
for i in range(1):
synth = blm.new(bl00mbox.patches.tinysynth_fm)
synth = blm.new(bl00mbox.patches.tinysynth)
synth.signals.output = blm.mixer
synths += [synth]
for synth in synths:
......
......@@ -70,6 +70,7 @@ class Configuration:
"pronouns": self.pronouns,
"pronouns_size": self.pronouns_size,
"color": self.color,
"mode": self.mode,
}
jsondata = json.dumps(d)
with open(path, "w") as f:
......
......@@ -105,7 +105,9 @@ class sampler(_Patch):
def __init__(self, chan, filename):
super().__init__(chan)
if filename.startswith("/"):
if filename.startswith("/flash/") or filename.startswith("/sd/"):
f = wave.open(filename, "r")
elif filename.startswith("/"):
f = wave.open("/flash/" + filename, "r")
else:
f = wave.open("/flash/sys/samples/" + filename, "r")
......
#!/usr/bin/env bash
set -e
set -e -u
if [ ! -f sdkconfig.defaults ] || [ ! -f recovery/sdkconfig.defaults ]; then
echo >/dev/stderr "Run this script for the root of the repository (ie. tools/mypy.sh)."
......@@ -28,7 +28,7 @@ _mypy python_payload/main.py
for f in python_payload/apps/*/flow3r.toml; do
app_name="$(basename $(dirname $f))"
echo "Checking ${app_name}..."
_mypy python_payload/apps/${app}
_mypy python_payload/apps/${app_name}
done
if [ $failed ]; then
......