Skip to content

Commit c9ec00f

Browse files
committed
updated readme for make
1 parent 3c426a7 commit c9ec00f

18 files changed

Lines changed: 181 additions & 27 deletions

File tree

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
11
cpy/**
2+
__pycache__/
3+
debug.log
24
!cpy/.gitkeep
5+
kmk/**
6+
!kmk/.gitkeep
37
post_build.sh

Makefile

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
# @version 0.4
55

66
CPYPREFIX := cpy/circuitpython
7+
KMKPREFIX := kmk/kmk_firmware
8+
THIS_DIR := $(dir $(abspath $(firstword $(MAKEFILE_LIST))))
79

810
.PHONY: default
911
default: run
@@ -13,12 +15,15 @@ all: init build
1315

1416
.PHONY: clean
1517
clean:
16-
rm -rf ${CPYPREFIX}
18+
sudo rm -rf ${CPYPREFIX}
19+
sudo rm -rf ${KMKPREFIX}
1720

21+
J=1
1822
.PHONY: run
1923
run:
20-
python3 main.py
24+
python3 main.py $(J)
2125
docker pull boardsource/bs-python
22-
docker run -v $(pwd)/build_out:/build_out -v $(pwd)/cpy/circuitpython:/cpy/circuitpython boardsource/bs-python && bash post_build.sh
26+
docker run -v ${THIS_DIR}cpy/circuitpython:/cpy/circuitpython boardsource/bs-python
27+
bash post_build.sh
2328

2429
# end

README.md

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,12 @@ So the main idea here and how we are doing this differently is we as you can see
66
Let me break down what's going on and how you can use this. I will start by going over the code flow then I will tell you what you need to edit (if you need to edit anything) and how you can help out
77

88
## Quick links
9-
[current boards](supported_boards.md)
9+
[Current Boards](supported_boards.md)
1010

1111

1212

1313
## **important**
14+
We just got a make file thanks to kdb424 <3 So at this time you can also run everything from the make file and bash scripts
1415
All scripts are intended to be run from the root so
1516

1617
**dont** do this
@@ -23,24 +24,31 @@ bash start.sh
2324
bash scripts/start.sh
2425
```
2526

27+
You can also make your builds faster with
28+
```
29+
make run J=12
30+
```
31+
J is your cpu cores
32+
33+
2634

2735

2836
## Code flow
29-
* scipts/start.sh <- entry point
37+
* scipts/start.sh OR "make run" <- entry point
3038
* calls main.py
3139
* main.py <- start of the code
3240
* cpy_git <- handles all things to do with git
3341
* clone the repo
3442
* add submodules
3543
* misc_file_changes <- change cpy code
3644
* board_mapping <- this moves BS_python boards into the right place in cpy
37-
* genarates the build script and post build script
45+
* generates the build script and post build script
3846
* pulls the docker container or uses the one you build (see below)
3947
* starts the new docker container
4048
* runs the dockersetupcmd.sh
4149
* this sets up the cloned cpy repo for building
42-
* runs the genarated build script that builds all the BS_Python boards
43-
* runs the genarated post build script
50+
* runs the generated build script that builds all the BS_Python boards
51+
* runs the generated post build script
4452
* this moves all of the built .u2f files into the ./build_out and renames them
4553

4654

@@ -51,7 +59,7 @@ below are the other scripts you can run and what they do
5159
* builds docker container
5260
* that way you only need docker and python you don't need to make sure you can compile cpy
5361
* tries to push it as well.
54-
* scripts/clean.sh
62+
* scripts/clean.sh or "make clean"
5563
* removes old cpy clones and builds.
5664
* scripts/bash-container.sh
5765
* this is mostly for debugging the docker container
@@ -66,19 +74,23 @@ So you will want to copy that board from the cpy folder (run main.py to get that
6674

6775
## Freeze a lib that is not in CPY
6876
To freeze another library you can simply add it to the FROZEN_REPO_LIST in cpy_git.py
77+
### Frozen libs already available
78+
* kmk_firmware
79+
* Adafruit_CircuitPython_DisplayIO_SSD1306
80+
* Adafruit_CircuitPython_SSD1306
6981

70-
## other code changes
82+
## Other code changes
7183
Above is all that I have implemented But if you want to make random changes to the CPY code base feel free to do so. A few things I would like to ask of you. Make sure that the entry for your code is in misc_file_changes.py (unless another file is better eg: git changes should be in cpy_git.py). And make sure you add something to this file letting others know how to do your cool new change.
7284

73-
## TODO / HELP WANTED / DISCLAMER
85+
## TODO / HELP WANTED / DISCLAIMER
7486
* typo / spelling
7587
* let me know if I need to make any more changes to stay legal
7688
* Add some boards
77-
* turn all my sick bash scripts into a make file LOL
78-
* freeze in kmk in some way. But I want it compiled to .mpy
79-
* I am a super python noob I barely know how to setup a python project. This one was setup using pipenv and python 3.9.x we dont have a reqerments.txt I dont know how to make one or if we need one we do have a pipfile tho.
89+
* I am a super python noob I barely know how to setup a python project. This one was setup using pipenv and python 3.9.x we dont have a requirements.txt I dont know how to make one or if we need one we do have a pipfile tho.
8090
* github action to add all the .uf2s from ./build_out to git hub releases
8191
* add colors to the logs (just the python parts)
92+
* inject custom code into circuitpython/supervisor/shared/filesystem.c to change the drive name and default code after we are freezing in kmk we will be able to have a u2f that is for cornes and it comes typing and working perfectly
93+
8294

8395

8496

board_mapping.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,22 +13,22 @@ def generate_build_script():
1313
file.write(post_build_script)
1414
print(f'making build script in "{build_script_path}"')
1515

16-
def add_board_to_build_script_board(board,board_dir):
16+
def add_board_to_build_script_board(board,board_dir,cpu_cores):
1717
global build_script
1818
global post_build_script
1919
build_script+=f'cd ports/{board_dir}\n'
20-
build_script+=f'make BOARD={board}\n'
21-
build_script+=f'sleep 100\n'
20+
build_script+=f'make -j{cpu_cores} BOARD={board}\n'
21+
# build_script+=f'sleep 50\n'
2222
build_script+=f'cd ../..\n'
2323
post_build_script+=f'cp ./cpy/circuitpython/ports/{board_dir}/build-{board}/firmware.uf2 ./build_out/{board}.uf2\n'
2424

25-
def move_boards():
25+
def move_boards(cpu_cores):
2626
for subdir in os.listdir(board_dir):
2727
board_type = f'{board_dir}/{subdir}'
2828
for board in os.listdir(board_dir+"/"+subdir):
2929
board_dest =f'{cpy_dir}/ports/{subdir}/boards/{board}'
3030
board_src= f'{board_dir}/{subdir}/{board}'
3131
shutil.copytree(board_src, board_dest)
3232
print(f'moving {board} from {board_src} to {board_dest}')
33-
add_board_to_build_script_board(board,subdir)
33+
add_board_to_build_script_board(board,subdir,cpu_cores)
3434
generate_build_script()

bs_python_boards/nrf/nice_nano_bs/mpconfigboard.mk

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,5 @@ MCU_CHIP = nrf52840
88
INTERNAL_FLASH_FILESYSTEM = 1
99

1010
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_BLE
11-
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
11+
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
12+
# FROZEN_MPY_DIRS += $(TOP)/frozen/kmk
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
/*
2+
* This file is part of the MicroPython project, http://micropython.org/
3+
*
4+
* The MIT License (MIT)
5+
*
6+
* Copyright (c) 2021 Scott Shawcroft for Adafruit Industries
7+
*
8+
* Permission is hereby granted, free of charge, to any person obtaining a copy
9+
* of this software and associated documentation files (the "Software"), to deal
10+
* in the Software without restriction, including without limitation the rights
11+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12+
* copies of the Software, and to permit persons to whom the Software is
13+
* furnished to do so, subject to the following conditions:
14+
*
15+
* The above copyright notice and this permission notice shall be included in
16+
* all copies or substantial portions of the Software.
17+
*
18+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24+
* THE SOFTWARE.
25+
*/
26+
27+
#include "supervisor/board.h"
28+
#include "shared-bindings/microcontroller/Pin.h"
29+
#include "src/rp2_common/hardware_gpio/include/hardware/gpio.h"
30+
#include "supervisor/shared/board.h"
31+
32+
void board_init(void) {
33+
}
34+
35+
bool board_requests_safe_mode(void) {
36+
return false;
37+
}
38+
39+
void reset_board(void) {
40+
// turn off any left over LED
41+
board_reset_user_neopixels(&pin_GPIO29, 62);
42+
}
43+
44+
void board_deinit(void) {
45+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#define MICROPY_HW_BOARD_NAME "lulu"
2+
#define MICROPY_HW_MCU_NAME "rp2040"
3+
4+
#define MICROPY_HW_NEOPIXEL (&pin_GPIO29)
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
USB_VID = 0x4273
2+
USB_PID = 0x7685
3+
USB_PRODUCT = "Lulu"
4+
USB_MANUFACTURER = "Boardsource"
5+
6+
CHIP_VARIANT = RP2040
7+
CHIP_FAMILY = rp2
8+
9+
EXTERNAL_FLASH_DEVICES = "W25Q16JVxQ"
10+
11+
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
12+
FROZEN_MPY_DIRS += $(TOP)/frozen/kmk
13+
14+
15+
# CIRCUITPY__EVE = 1
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
// Put board-specific pico-sdk definitions here. This file must exist.
2+
3+
// Allow extra time for xosc to start.
4+
#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
#include "shared-bindings/board/__init__.h"
2+
3+
STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
4+
CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS
5+
6+
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO0) },
7+
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO1) },
8+
{ MP_ROM_QSTR(MP_QSTR_GP02), MP_ROM_PTR(&pin_GPIO2) },
9+
{ MP_ROM_QSTR(MP_QSTR_GP03), MP_ROM_PTR(&pin_GPIO3) },
10+
{ MP_ROM_QSTR(MP_QSTR_GP04), MP_ROM_PTR(&pin_GPIO4) },
11+
{ MP_ROM_QSTR(MP_QSTR_GP05), MP_ROM_PTR(&pin_GPIO5) },
12+
{ MP_ROM_QSTR(MP_QSTR_GP06), MP_ROM_PTR(&pin_GPIO6) },
13+
{ MP_ROM_QSTR(MP_QSTR_GP07), MP_ROM_PTR(&pin_GPIO7) },
14+
{ MP_ROM_QSTR(MP_QSTR_GP08), MP_ROM_PTR(&pin_GPIO8) },
15+
{ MP_ROM_QSTR(MP_QSTR_GP09), MP_ROM_PTR(&pin_GPIO9) },
16+
{ MP_ROM_QSTR(MP_QSTR_GP10), MP_ROM_PTR(&pin_GPIO10) },
17+
{ MP_ROM_QSTR(MP_QSTR_GP11), MP_ROM_PTR(&pin_GPIO11) },
18+
{ MP_ROM_QSTR(MP_QSTR_GP12), MP_ROM_PTR(&pin_GPIO12) },
19+
{ MP_ROM_QSTR(MP_QSTR_GP13), MP_ROM_PTR(&pin_GPIO13) },
20+
{ MP_ROM_QSTR(MP_QSTR_GP14), MP_ROM_PTR(&pin_GPIO14) },
21+
{ MP_ROM_QSTR(MP_QSTR_GP15), MP_ROM_PTR(&pin_GPIO15) },
22+
{ MP_ROM_QSTR(MP_QSTR_GP16), MP_ROM_PTR(&pin_GPIO16) },
23+
{ MP_ROM_QSTR(MP_QSTR_GP17), MP_ROM_PTR(&pin_GPIO17) },
24+
{ MP_ROM_QSTR(MP_QSTR_GP18), MP_ROM_PTR(&pin_GPIO18) },
25+
26+
{ MP_ROM_QSTR(MP_QSTR_GP21), MP_ROM_PTR(&pin_GPIO21) },
27+
{ MP_ROM_QSTR(MP_QSTR_GP22), MP_ROM_PTR(&pin_GPIO22) },
28+
{ MP_ROM_QSTR(MP_QSTR_GP23), MP_ROM_PTR(&pin_GPIO23) },
29+
{ MP_ROM_QSTR(MP_QSTR_GP24), MP_ROM_PTR(&pin_GPIO24) },
30+
31+
{ MP_ROM_QSTR(MP_QSTR_GP24), MP_ROM_PTR(&pin_GPIO24) },
32+
{ MP_ROM_QSTR(MP_QSTR_GP25), MP_ROM_PTR(&pin_GPIO25) },
33+
{ MP_ROM_QSTR(MP_QSTR_GP26), MP_ROM_PTR(&pin_GPIO26) },
34+
{ MP_ROM_QSTR(MP_QSTR_GP27), MP_ROM_PTR(&pin_GPIO27) },
35+
{ MP_ROM_QSTR(MP_QSTR_GP28), MP_ROM_PTR(&pin_GPIO28) },
36+
{ MP_ROM_QSTR(MP_QSTR_GP29), MP_ROM_PTR(&pin_GPIO29) },
37+
38+
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO22) },
39+
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO23) },
40+
41+
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_GPIO26) },
42+
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_GPIO28) },
43+
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_GPIO27) },
44+
45+
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
46+
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
47+
48+
};
49+
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);

0 commit comments

Comments
 (0)