HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
fsantanna-no
ceu-arduino
Makefile2017–2017
fsantanna-no / ceu-arduino

ceu-arduino

Arduino binding for Céu

2Distinct people
2Mentions
0Explicit recommenders
2GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Arduino binding for Céu

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by month2 dated mentions

Observed mentions: 2017-01-30 11:11:52 UTC to 2017-09-17 21:11:00 UTC.

012017-01-01 00:00:00 UTC to 2017-02-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsJan 20172017-02-01 00:00:00 UTC to 2017-03-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2017-03-01 00:00:00 UTC to 2017-04-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2017-04-01 00:00:00 UTC to 2017-05-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2017-05-01 00:00:00 UTC to 2017-06-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsMay 20172017-06-01 00:00:00 UTC to 2017-07-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2017-07-01 00:00:00 UTC to 2017-08-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2017-08-01 00:00:00 UTC to 2017-09-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2017-09-01 00:00:00 UTC to 2017-10-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsSep 2017

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Jan 20172017-01-01 00:00:00 UTC2017-02-01 00:00:00 UTC101
Feb 20172017-02-01 00:00:00 UTC2017-03-01 00:00:00 UTC000
Mar 20172017-03-01 00:00:00 UTC2017-04-01 00:00:00 UTC000
Apr 20172017-04-01 00:00:00 UTC2017-05-01 00:00:00 UTC000
May 20172017-05-01 00:00:00 UTC2017-06-01 00:00:00 UTC000
Jun 20172017-06-01 00:00:00 UTC2017-07-01 00:00:00 UTC000
Jul 20172017-07-01 00:00:00 UTC2017-08-01 00:00:00 UTC000
Aug 20172017-08-01 00:00:00 UTC2017-09-01 00:00:00 UTC000
Sep 20172017-09-01 00:00:00 UTC2017-10-01 00:00:00 UTC101

What Hacker News says

2 sources
> The tooling is nearly always C, so it's interesting to see Rust moving into this space. Memory management is not so much of an issue, but multitasking correctness is; perhaps there will be some new micro-RTOS framework with provably correct interrupt handling. Give Céu a look[0]. It was specifically designed for embedded computing, and compiles to C, making it very easy to interface with existing libraries. It requires no manual memory management, and has very nice structured synchronous reactive concurrency primitives. (EDIT: I realise that multitasking and concurrency aren't quite the same thing; it also has experimental interrupt support though) Here's a made-up example for Arduino (for which it has support out of the box[1]). It creates two concurrent fading LEDs at different frequencies, and resetting at the push of a button: #
Read the rest
include "arduino/arduino.ceu" input int PIN_02; // button input output int PWM_05; // LED outputs, remember that pins 5 and 6 output int PWM_06; // have a higher PWM frequency on the UNO // a code block that concurrently fades an LED in and out // `pin` the output pin of the LED // `min` min value of the fade // `max` max value of the fade // `delay` number of milliseconds to wait between increasing/decreasing `analogWrite` code/await Fade_forever(var u8 pin, var u8 min, var u8 max, var uint delay) -> void do loop do var int i; loop i in [min->max] do // fade in loop if pin == 5 then emit PWM_05(i); else/if pin == 6 then emit PWM_06(i); end await delay ms; end loop i in [min<-max] do // fade out loop if pin == 5 then emit PWM_05(i); else/if pin == 6 then emit PWM_06(i); end await delay ms; end end end loop do //endless loop // if *any* of these three code blocks (trails) end, all of the remaining trails in // a `par/or` are aborted and code resumes (in this case, the loop restarts). // By comparison, a `par/and` construct would require *all* of the trails to // terminate before continuing. par/or do await PIN_02; // .. meaning that if a button is pressed, we reset the loop with // fade the LED at pin 5 quickly between 64 and 192 await Fade_forever(5, 64, 192, 5) with // fade the LED at pin 6 slowly between 0 and 255 // note that because it fades over almost twice range (255 vs 128) // but not exact, it's around eight times slower, not four, and it // will slowly go out of sync. // We can push the button to reset however! await Fade_forever(5, 0, 255, 20) end [0] http://ceu-lang.org/, http://fsantanna.github.io/ceu/out/manual/v0.20/ [1] https://github.com/fsantanna/ceu-arduino
In Discover the world of microcontrollers through Rust

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.