9 ms·
Reverse engineering the 1988 NeXT keyboard protocol
- Bud 5y agoHad one of these with my original NeXT Cube that I bought new while in grad school. Still one of my favorite keyboards ever. And the Cube itself was so far ahead of everything else out there at the time that it felt like pure magic.
- technothrasher 5y ago> And the Cube itself was so far ahead of everything else out there at the time that it felt like pure magic. Ah, the good old days, when I used to argue with my buddy that my SGI Indigo was more magical than his NeXTcube. It was even more fun than the old Mac/PC arguments. The Android/iOS fights today just don't have the same lustre.
- HeckFeck 5y agoMaybe because it had an undertone of friendly rivalry, in good old Unix hacker fashion? I admittedly enjoy the passion shown on both sides of any divisive issue in this peculiar realm: vi vs Emacs, sysd vs sysv, xorg vs Wayland, etc.
- ASalazarMX 5y agoNever did electronics, so when I've read of logic analyzers in a book, it sounded like something between an oscilloscope and a complex gadget out of a story from Isaac Asimov. It's surprising they're so simple, cheap and effective.
- kevin_thibedeau 5y agoBenchtop logic analyzers used to be more complicated. They are still technically superior with better probe termination, higher sample rates, and sophisticated hardware triggering.
- danhor 5y agoThe big down side is of course the limited sample memory. Many (especially the very popular, because cheap, fx2la) pc-based ones simply stream the data, which enables the use of all PC RAM and essentially infinite capture times.
- MayeulC 5y agoLast time I tried a cheap ($8) saleae fx2la clone using pulseview/sigrok (open source combo for visualization, with open source fx2lafw), I didn't find a continuous option, but that might have been a GUI issue, thanks for the tip!
- danhor 5y agoYou can just set the sample count really high (up to 1 trillion). The samples are not compressed in RAM, so the maximal capture time is determined by the size. For 8 GiG and 24 MHz this means you can capture for ~6 minutes. I tend to simply set the sample count higher than needed and stop the capture prematurely.
- buescher 5y agoIf you have a decent oscilloscope with logic/protocol analyzer features, you can trigger the analog scope side of the tool on data. This is a very powerful debugging tool for finding the physical cause of odd data. Yes, with a pc-based tool you can capture everything to disk and go back and search, but that usually works out to be kind of clumsy.
- kevin_thibedeau 5y agoTektronix introduced some nice LA units 20+ years ago that could be configured with analog mux outputs to pass probe channels over to a scope. The instruments could be cross triggered if you wanted to but it was fun to cycle through a whole address and data bus in real time and look for SI problems.
- pkaye 5y agoA while back Cypress made a programmable chip that had USB capability, programmable general purpose IO and DMA for efficient data transfer. This turned out to be just what as needed to make cheap logic analyzers for hobbyists. https://www.eevblog.com/forum/testgear/logic-analyzer-that-is-using-the-cypress-ez-usb-fx3-chip/ https://www.eevblog.com/forum/testgear/logic-analyzer-that-i...
- duskwuff 5y ago> A while back Still in production, still incredibly useful.
- thought_alarm 5y agoI like to think that there's an alternate universe where the entire industry adopted NeXT's idea of replacing the dedicated Caps Lock key with a Command+Shift key combination, because it's such a smart and obviously correct thing to do. Sadly, I'll never live in that universe.
- andrewshadura 5y agoI understand it was quite popular in the MSX world.
- yndoendo 5y agoThat world does exist with programmable keyboards. Fn + Capslock = Capslock On / Off toggle. Capslock = Esc. Makes coding in VI / VIM quicker on the touch and lighter on the fingers. Just wish laptop manufacturers would include programmable keyboards so multi-boot allows retention instead of having to run a service to override the OS input device.
- saulrh 5y agoI kind of do - I have caps lock remapped to lcontrol and lcontrol remapped to lwin, so the leftmost column of my keyboard looks like ~, tab, lcontrol, lshift, lwin from top to bottom. If I need control+shift I just hit control with the flat of my pinky instead of the tip so it also catches shift, and if I need shift+command I hit shift with the flat of my pinky instead of the tip so it catches command too. It's not perfect, but it a lot easier on my wrist than other configurations I've attempted.
- AutumnMeowMeow 5y agoWhat a lovely tale! These are just the best. :)
- smm11 5y agoADB? This means I can use an old Mac keyboard on NeXT, or vice-versa?
- itomato 5y agoOn models with ROM v74 or above. On NeXT hardware, you can also go the other way. Pretty good thread: http://www.nextcomputers.org/forums/index.php?topic=3428.0 http://www.nextcomputers.org/forums/index.php?topic=3428.0
- jandrese 5y agoHe says it is DIN of the "non-ADB" flavor, so probably not.
- Bud 5y agoI used to use an Apple Extended Keyboard II on my NeXTStation Turbo Color. The later NeXT models had full ADB support. The early Cubes did not. I also sometimes used an ADB NeXT keyboard with various Macs in the 1990s.
- kragen 5y agoNelson seems to have been using a Rigol benchtop scope and some proprietary software that came with his generic logic analyzer. But from long experience I'm wary of investing my time in proprietary vendor tools. Does anyone have a good overview of the free-software signal-analyzer-software/oscilloscope-software landscape? I've played with sigrok a little bit, enough to get it to decode some PS/2 signals I captured on an Arduino. OpenHantek looks pretty great over in oscilloscope-land. What else is out there, and what's better or worse, or why?
- adamzegelin 5y agoCheck out Sigrok: https://www.sigrok.org https://www.sigrok.org
- rasz 5y agohttps://sigrok.org/wiki/Kingst_LA2016 https://sigrok.org/wiki/Kingst_LA2016 to be exact. LA1016 is supported, but LA1010 seems to be even more cut down version. Indeed teardown reveals https://blog.lvu.kr/kingst-la1010-logic-analyzer/ https://blog.lvu.kr/kingst-la1010-logic-analyzer/ is using older FPGA and no dedicated memory buffer. Compare to LA1016 https://www.cnx-software.com/2014/12/30/la1016-la2016-and-la5016-logic-analyzers-cost-as-low-as-44/ https://www.cnx-software.com/2014/12/30/la1016-la2016-and-la... > 100 m @ 3 channels, 50 m @ 6 channels, 32 m @ 9 channels, 16 m @ 16 channels all <40MB/s, so its purely streaming LA like original Salea. Edit: ah, so its further optimized https://sigrok.org/wiki/KingST_KQS3506-LA16100 https://sigrok.org/wiki/KingST_KQS3506-LA16100 direct Salea logic16 clone, everything makes sense.
- satya71 5y agoHaven’t used them ever, but Red Pitaya[1] had a compelling pitch. [1] https://redpitaya.com/ https://redpitaya.com/
- hackerlytest 5y agoThanks for the link.
- 5y ago
- corysama 5y agoHey spenczar5, https://www.reddit.com/r/ReverseEngineering/ https://www.reddit.com/r/ReverseEngineering/ would like this a lot :)
- spenczar5 5y agoGood idea, I've just posted it there :)
- deleted 5y ago[deleted]
- amelius 5y agoNo copy and paste keys? Seems like another badly designed keyboard.
- SeanLuke 5y agoIt is for all intents and purposes a copy of the Mac layout. Which shouldn't be surprising given who founded NeXT.
- spenczar5 5y agoIt has them, actually; legends are printed on the front of the keycaps. Here's a picture: https://kuritakey.zone/next-non-adb-keyboard-aae/ https://kuritakey.zone/next-non-adb-keyboard-aae/ Appreciate the negativity though!
- selcuka 5y agoYou can always purchase it as an addon: https://drop.com/buy/stack-overflow-the-key-macropad https://drop.com/buy/stack-overflow-the-key-macropad
- PostThisTooFast 5y ago
- slater 5y agooff-topic: any chhance for an RSS feed?
- spenczar5 5y agoThis is a nice suggestion, and fairly flattering. Maybe I'll get around to adding one in the next week or so. My site is put together with a weird pile of goofy Python scripts and pandoc; generating an RSS file doesn't sound too hard.
- rasz 5y ago>I don’t really understand all of the details, but from what I can gather, AM radios require a little clock component, and it’s desirable for this component to not be too close to any actively-used broadcast frequencies. https://en.wikipedia.org/wiki/Intermediate_frequency#Uses https://en.wikipedia.org/wiki/Intermediate_frequency#Uses
- marcan_42 5y ago> When I told my Arduino to sleep for 51 microseconds, it was generally sleeping for either 56.2 or 61.3 microseconds. That seemed to easily be bad enough to cause lots of problems. This is why I've never quite liked the Arduino ecosystem, the way it exists. Sure, it works and it's accessible to newcomers... but it doesn't encourage understanding the inner workings of the platform enough, which is something that is extremely valuable and accessible when you're working with simple 8-bit microcontrollers. Learning about hardware registers and clocks and cycle accuracy really isn't that scary, that's the point of using a tiny (and frankly obsolete) 8-bit platform! But when you give people an API that takes an integer number of microseconds, and then approximates it, people are going to think they can bit bang an async serial protocol in C using it, and they will be very confused when it doesn't work (as happened here), and you end up in cargo cultish land of trying to work with bad data instead of developing an actual understanding of the hardware you're working with. I've seen so many people thinking they need to design their bespoke board around an Arduino shield connector because the thought of just throwing on the ATMega directly scares them, even though the thing only needs 5V, GND, and crystal (if that), because what would they do outside the comfortable ecosystem? And it just makes me sad. If you're at the point you're designing your own semi complex boards and you haven't graduated from Arduino yet, you're not letting yourself grow. (Or maybe I'm just an old millennial and I think these zoomers should be learning microcontrollers by programming in assembly like I did when I was 10 and using the PIClist delay routine generator and counting my cycles before Arduino existed, now get off my lawn? You decide :-) )
- spenczar5 5y agoRight, it's complicated, isn't it? Like, I couldn't (or at least wouldn't) have gotten started on this project if I had to read the ATMega reference manuals from the very first step. But I did feel very frustrated that the Arduino "delayMicroseconds" function is so far off from accurate, and I felt frustrated also whenever I looked for deeper explanations of almost anything. It's a very copy-and-paste culture. I eventually did find programming things more directly to be quite rewarding and worthwhile. My code is still in a ".ino" file, and uses some Arduino stuff, but it's basically built around ISRs in some frankencode middle state. There's a lot of room for someone to create good tutorials and material for ramping up and out of Arduino. Would have helped me a lot, at least.
- bdowling 5y agoThat gigantic 8.5u space bar. Trying to hit Command using your thumbs must be painful. Compare with a modern US Mac keyboard at 5u.