New firmware implementation (v3.0)

74 views
Skip to first unread message

Oren Lederman

unread,
Dec 10, 2018, 10:32:04 AM12/10/18
to rhythm...@googlegroups.com
The new implementation of the badge's firmware. Master's Thesis Michael Hopfengärtner (@MichaelHopfengaertner). It uses the Nordic Semiconductor's SDK v12.3.0 for the nRF51822 chip of the badge.

Various new techniques and methods have been developed and integrated:
- Filesystem: The internal flash-memory of the nRF51822 and the external EEPROM were abstracted and put together to provide one "large" virtual memory with byte level access. On the basis of this virtual memory a filesystem was implemented. It separates the available memory into partitions. A partition can be configured as static or dynamic. Static means that all elements stored in the partition must have the same size. In contrast, dynamic partitions allow a variable size of the elements. In dynamic partitions, a XOR linked list is used as data structure.
- Tinybuf: A serialization library orientated at Google's Protocol Buffers. It enables an efficient serialization of structured data and is used for storage and transmission. It supports C and Python as programming languages. By using Tinybuf, the transmission protocol between the badges and hubs can be extended and adapted easily, enabling a fast development process.
- Time synchronization: An exponential weighted moving average filter was implemented to robustly compensate oscillator frequency drifts during the time synchronization.
- Testing framework: A framework that allows to easily create and execute tests. Optionally, test coverage can be enabled. This allows the developer to see how good the tests are and where to add some more (unit) tests.
- ...

The firmware has a modular and maintainable architecture. This makes it relatively easy to migrate to other platforms.

The new firmware also transmit data twice as fast as the old one, enabling each hub to support more badges.

Note that the badge testing procedure has changed. I added a description of the new procedure to the README file.

Patrick Connolly

unread,
Dec 11, 2018, 4:56:37 AM12/11/18
to Oren Lederman, Rhythm Badges
This is awesome! Really excited. We're just heading to Taipei hackerspace to build our first badge tonight!

Michael, do you do Twitter?

--
You received this message because you are subscribed to the Google Groups "Rhythm Badges" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rhythm-badge...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rhythm-badges/2b930cf4-2fa7-41ce-b3a8-5bc3750157f4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Stephen Gilbert

unread,
Dec 20, 2018, 4:42:27 PM12/20/18
to Rhythm Badges


Hello all,

I'm trying to include a budget of $1500 in a grant proposal to buy some Rhythm badges and study team dynamics with human-agent teams (maybe 20-30 badges?). I don't suppose there's a place where I can simply buy them, is there? At this point I'm looking to justify a price point so I can tell the grant agency, "See? Here's how much these cost."

Stephen

--
Stephen B. Gilbert, Ph.D.
Associate Director
Virtual Reality Applications Center
Human Computer Interaction
Associate Professor, Industrial and 
Manufacturing Systems Engineering
Iowa State University





Kevin Fiscella

unread,
Jan 4, 2019, 9:31:37 AM1/4/19
to Rhythm Badges

Oren,

I am a member of the  University of Rochester CTSI team. Do you have recommendations for systems for analyzing and visualizing the data, particularly in the context of conferences where there are multiple brief one-on-one interactions and as well as for those involving longer group interactions, eg meetings? We are interested in both individual participant data eg number of unique interactions, cross-disciplinary interactions (based on IDs), average turns per interaction, in addition to network analysis. Also, do you recommend use of stationary badges to identify locations of interactions or do you recommend other approaches to identifying location? 

Kevin Fiscella, MD, MPH
University of Rochester Medical Center  

Oren Lederman

unread,
Jan 4, 2019, 1:14:14 PM1/4/19
to Rhythm Badges
Hi Kevin, I'm moving your question to a new thread

Oren Lederman

unread,
Jan 4, 2019, 1:41:43 PM1/4/19
to Rhythm Badges

Bo Doan

unread,
Feb 12, 2020, 2:19:12 AM2/12/20
to Rhythm Badges
Hi Oren and Michael,

I've been trying to re-flash a badge (badge 510, v3.06), one of the badges you first sent to Martin (Tilburg University, Netherlands), with this new firmware that I cloned from your Github. I ran into an impasse, could you please maybe give some directions?

A note: I tried the following in Ubuntu Linux 18.04.
First, in the directory of the openbadge folder cloned from github, I followed the instruction with the command "docker-compose build", which works just fine. But when I ran "docker-compose run nrf", it threw this error even though, I have connect the badge (510, v3.06) to the programmer (nrf51_pca10028).
/app/compose/entry_point.sh: line 22: exec: badge_03v6_noDebug: not found

Then, I try import/open the project via SEGGER Embedded Studio (File -> Open nRF Connect SDK Project, with ..
CMakeLists.txt: {path to}/openbadge/CMakeList.txt
Board Directory: {path to}/zephyr/boards/arm/nrf51_pca10028
Board Name: nrf51_pca10028
Build Directory: {auto-filled, under the path to the /openbadge}
The subsequent execution based on the CMakeLists.txt file threw the errors such as:

CMake Error at CMakeLists.txt:73 (add_executable):

Cannot find source file:


firmware/nRF_badge/data_collector/incl/analog.c

 

and cannot find nff_drv_config.h, pstorage_platform.h, etc., which, I checked, are indeed not there under the directory firmware/nRF_badge/data_collector/config (https://github.com/HumanDynamics/openbadge/tree/master/firmware/nRF_badge/data_collector/config).


I am completely new when it comes to working with the nRF so problems may due to the programmer set-up, which I basically followed step-by-step the tutorials "Getting Started Assistant: Guide to set up the nRF Connect SDK", within the app "nRF Connect v3.3.0". I did get any error following this tutorial though.


I appreciate it if you could provide some guidance to solve this problem. Please let me know alse if anything is unclear.


Thank you and have a nice day!


Bo

Reply all
Reply to author
Forward
0 new messages