Line: 1 to 1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Mecrisp-Cube for the Katydid Wearable BLE Sensor Board
Intro
If you want a small BLE board with a QSPI NOR flash memory, a BMA400 low-power accelerometer, an STBC08 LiPo battery charger, and connectors for a variety of sensor modules then this board could be the right board for you.
The Katydid Wearable BLE Sensor Board
is designed by Tlera Corp.
The GPIOs are very carefully selected. JTAG SWD is on the pin header too!
Instant real-time programming with Forth.
Sources on GitHub (Katydid branch on Mecrisp-Cube)
FeaturesThe standard Mecrisp-Cube features like RTOS, Filesystem, USB, etc.
Getting StartedThese instructions will get you a copy of the project up and running on your local machine (STM32WB Katydid Wearable BLE Sensor Board) for development and testing purposes.Prerequisites
MecrispCubeKatydid.bin ) or the util-binary (MecrispCubeKatydidUtil.bin , Forth utilities included e.g. disassembler, float operations, conditionals, etc) to the Katydid Board.
/dev/ttyACM0 ).
I set the putty terminal configuration to
Mecrisp-Stellaris RA 2.5.4 by Matthias Koch. Mecrisp-Cube 1.4.5 for STM32WB Katydid, 63/384 KiB RAM/FLASH dictionary (C) 2022 peter@spyr.ch * Firmware Package STM32Cube FW_WB V1.14.1, USB-CDC, BLE Stack 5.3 (C) 2022 STMicroelectronics * CMSIS-RTOS V2 FreeRTOS wrapper, FreeRTOS Kernel V10.3.1 (C) 2020 Amazon.com * FatFs for internal flash and microSD - Generic FAT fs module R0.12c (C) 2017 ChaN * tiny vi - part of BusyBox (C) 2000, 2001 Sterling Huxley include 0:/etc/rc.local 23 5 / .[CR] 4 ok. : hello ." World" ;[CR] ok. hello[CR] World ok. Special Functions on StartupUSB-CDC is the default console.
Additional Tools and Local FilesystemPopulate a microSD with the contents of sdcard. Put the microSD into the uSD Card slot and reset or power cycle the board. The directory should look like this:ls -l 1:[CR] drw- 0 2021-04-18T18:12:38 boot drw- 0 2021-03-21T18:47:52 etc drw- 0 2021-03-21T18:47:54 fsr drw- 0 2021-03-21T18:47:54 home drw- 0 2021-03-21T18:47:56 man -rwa 7219 2021-01-08T19:42:36 README.md ok.You can use the local CLI commands like mkfs , mkdir and cp to create a filesystem on the serial flash and fill it with files and folders. But this is tedious job because I haven't yet implemented a recursive copy for MecrispCube. But there is prepared disk image
(for details see MicroSdBlocks#Serial_Flash) on microSD and the tool dd . You can copy the disk image to the drive 0: (this takes about 8 Minutes):
dd 1:/boot/fd-16MiB.img 0:[CR] ok. mount 0:[CR] ok. ls 0:[CR] man fsr README.md boot etc home ok.The Mecrisp have some tools bundled in its distribution e.g. assembler, disassembler, dump, float. I put those tools and some more into the folder /fsr . With the "init.fs script" I compile my favorite ones into the flash directory (if you use the util-binary binary, these tools are already compiled in):
compiletoflash[CR] ok. include /etc/init.fs[CR] init.fs Loading started RAM Dictionary: 392991 KiB utils.fs loading ... conditional.fs loading ... dump.fs loading ... disassembler-m3.fs loading ... float.fs loading ... threads.fs loading ... RAM Dictionary: 392981 KiB init.fs finished ok.For example, the word disassember is available now: see dump[CR] 080405F0: B500 push { lr } 080405F2: F7C2 bl 08002A3E --> cr 080405F4: FA24 080405F6: CF08 ldmia r7 { r3 } 080405F8: F013 ands r2 r3 #F 080405FA: 020F 080405FC: F847 str r3 [ r7 #-4 ]! 080405FE: 3D04 08040600: 2A00 cmp r2 #0 08040602: D000 beq 08040606 08040604: 3610 adds r6 #10 08040606: CF08 ldmia r7 { r3 } 08040608: F847 str r6 [ r7 #-4 ]! Installing Development EnvironmentA step by step series of examples that tell you how to get a development env running Install the IDE STM32CubeIDE, it is Eclipse and GCC based. STM32CubeMX is included in the IDE, you need a stand alone installation only if you do not want to use the STM32CubeIDE. Get the sources from github:psi@homer:~> git clone --branch katydid https://github.com/spyren/Mecrisp-Cube Klone nach 'Mecrisp-Cube' ... remote: Enumerating objects: 1157, done. remote: Counting objects: 100% (1157/1157), done. remote: Compressing objects: 100% (620/620), done. remote: Total 3183 (delta 720), reused 934 (delta 525), pack-reused 2026 Empfange Objekte: 100% (3183/3183), 41.60 MiB | 6.96 MiB/s, Fertig. Löse Unterschiede auf: 100% (2100/2100), Fertig.Import the project into the IDE: File -> Import -> General -> Existing Projects into Workspace -> Select root directory Copy project into workspace Browse to Mecrisp-Cube directoryGenerate code from the STM32CubeMX MecrispCubeKatydid.ioc file:
Project -> Generate CodeRestore changed source files $ git status {list of changed files} $ git restore {files to restore}Select the Build Configuration (Debug if you want to debug the project) and Build the project: Project -> Build Configurations -> Set Active -> Debug/Release Project -> Build Project ExtensionsAdafruit Feather Adaptorhttps://learn.adafruit.com/adafruit-feather/feather-specification. You have to adapt the firmware for using the Feather pinout.
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
< < |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
> > |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
JP1 Left, JP3 Right
This work by Peter Schmid is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
> > |
|